[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Запретить повторную отправку данных формы
goodguy
Всем привет,

Знаю, что подобные темы обсуждались везде где только можно, в том числе и на этом форуме, но раз уж решил создать свою тему, значит те решения мне не подошли.

Проблема в следующем,
есть форма (о которой была моя вчерашняя тема ). Там была проблема с кодировкой одного скрипта. Но после замены кодировки везде на UTF-8 вместо кириллицы стали отображаться кракозябры. Это удалось исправить добавив в файл header.php строку header('Content-Type: text/html; charset=utf-8'); но это создало другую проблему, при обновлении страницы, браузер отправляет данные формы повторно, но решение с перенаправлением на ту же страницу черезе header("Location: register.php"); не работает, так как заголовки уже отправлены.
Как можно решить проблему? А главное, как это сделать лучше?



Спустя 47 минут, 15 секунд (28.06.2012 - 12:36) pak написал(а):
Вам суда Сброс POST параметров
Удачи.

Спустя 31 минута, 3 секунды (28.06.2012 - 13:07) Guest написал(а):
Что-то не могу понять в чем смысл того, что там написано. В том, что нужно перенести скрипт приема до формы?

Все так же выдает ошибку
Цитата
Warning: Cannot modify header information - headers already sent by (output started at Z:\home\rk-yes.ru\www\commonparts\header.php:14) in Z:\home\rk-yes.ru\www\register.php on line 21

что мне кажется вполне логичным

Спустя 15 часов, 23 минуты, 26 секунд (29.06.2012 - 04:30) dron4ik написал(а):
header('Content-Type: text/html; charset=utf-8'); замени на html эквивалент и поменяй кодировку самого файла...

Спустя 45 минут, 2 секунды (29.06.2012 - 05:15) goodguy написал(а):
Это уже далал.
<!DOCTYPE html>
<html lang="ru">
<head>
<meta
http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta
http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />

<title><?php
echo lang::$title ?></title>
<meta
name="description" content="<?php echo lang::$content_descr; ?>" />
<meta
name="viewport" content="width=device-width; initial-scale=1.0" />

<link
rel="shortcut icon" href="/favicon.ico" />
<link
rel="apple-touch-icon" href="/apple-touch-icon.png" />
<link
rel="stylesheet" href="css/styles.css" type="text/css" />
<link
rel="stylesheet" href="css/global.css" type="text/css" />
<link
rel="stylesheet" href="css/buttons.css" type="text/css" />
<link
rel="stylesheet" href="css/gallery_body.css" type="text/css" />

<script
src="javascript/jQuery.js"></script>
<script
src="javascript/slides.min.jquery.js"></script>
<script
src="javascript/gen_validatorv4.js"></script>
<script
src="javascript/pwdwidget.js"></script>
<script
src="javascript/gen_validatorv4.js"></script>
<script
src="javascript/jquery.lightbox.js"></script>

</head>


не помогает. Кодировка самого файла utf-8

Спустя 33 минуты, 42 секунды (29.06.2012 - 05:49) Gabriel написал(а):
goodguy
где-то до отправки заголовка идет вывод, потому и пхп и ругается.

Спустя 3 минуты, 14 секунд (29.06.2012 - 05:52) goodguy написал(а):
Так и есть. Оказывается денвер высылал хедер с указанием кодировки Windows-1251.
Отредактировал httpd.conf, добавил туда AddDefaultCharset utf-8 и http эквивалент стал работать.
Но перенаправление все равно выдает ошибку
Warning: Cannot modify header information - headers already sent by (output started at Z:\home\192.168.1.12\www\commonparts\header.php:13) in Z:\home\192.168.1.12\www\register.php on line 65


блин, неужели я первый кто с этим столкнулся.

Спустя 12 минут, 7 секунд (29.06.2012 - 06:04) Tadochi написал(а):
ob_start();
....
header('location: yuh.ru');
exit;
руками сильно не пинать laugh.gif

Спустя 30 минут, 2 секунды (29.06.2012 - 06:34) goodguy написал(а):
Цитата (Tadochi @ 29.06.2012 - 03:04)
ob_start();
....
header('location: yuh.ru');
exit;
руками сильно не пинать laugh.gif

А ведь буферизация помогла. Спасибо.

Но нормально ли это? Какие подводные камни меня могу ожидать если здесь включить буферизацию?

Спустя 3 минуты, 2 секунды (29.06.2012 - 06:38) Tadochi написал(а):
goodguy
да вроде никаких

Спустя 2 минуты, 49 секунд (29.06.2012 - 06:40) goodguy написал(а):
Отлично, тогда буду исползовать и не париться biggrin.gif
Все равно в принципе это не так важно. Проект мелкий и не значительный, так что особых требований к качеству нет )

Спустя 1 час, 10 секунд (29.06.2012 - 07:40) Invis1ble написал(а):
goodguy
буфферизация - не решение проблемы, а лечение симптомов
тебе сюда , вопросы №3, 4 + комменты

Спустя 6 часов, 36 минут, 53 секунды (29.06.2012 - 14:17) goodguy написал(а):
Это все понятно, я уже находил подобное.
Просто я еще не на столько хорош в php чтобы простроить всю логику сразу правильно, а переделывать все уже написанное не особо хочется.

У меня в любом случае до формы отправляется шапка сайта, так как форма находится между шапкой и подвалом, а шапка подключается в файле register.php таким образом:

require_once 'commonparts/header.php';

Естественно переставить ее после формы нельзя, так что здесь, видимо, буферизация единственный выход.


Кстати, а как все-таки реализуют подобное вообще?
Не писать же под шапки в каждом php файле отдельно.

Спустя 36 минут, 59 секунд (29.06.2012 - 14:54) Gabriel написал(а):
goodguy
обработчик формы вынеси в отдельный файл и подключай перед шапкой.

Спустя 2 дня, 15 часов, 28 минут, 13 секунд (2.07.2012 - 06:23) goodguy написал(а):
Помогло, сенк ю =)
ппц, даже не думал что в работе с php может быть столько заморочек

Спустя 1 час, 33 минуты, 58 секунд (2.07.2012 - 07:57) sergeiss написал(а):
Цитата (goodguy @ 29.06.2012 - 15:17)
а переделывать все уже написанное не особо хочется.

По сути вопроса тебе уже ответили, я только про это высказывание выскажусь (сорри за тафтологию smile.gif). Лучше переделать сразу, чтобы потом не было мучительно больно, когда будешь переделывать не чуть-чуть, а очень много. По себе знаю smile.gif Сначала лень, а потом все равно приходится переделывать. Но на это уходит намного больше времени, чем сначала бы написал правильно.
Так что не ленись.

Спустя 2 часа, 31 минута, 45 секунд (2.07.2012 - 10:28) Gabriel написал(а):
это можно назвать заморочкой лишь на определенном этапе, потом уже автоматом все пишется как надо
Цитата
Но на это уходит намного больше времени, чем сначала бы написал правильно.

а иногда и нервов)

Спустя 2 часа, 26 минут, 43 секунды (2.07.2012 - 12:55) sergeiss написал(а):
Цитата (Gabriel @ 2.07.2012 - 11:28)
а иногда и нервов)

Да ужжжжж...

Как раз сейчас занимаюсь переписыванием своего же кода, сделанного года 3 тому назад. Тогда время сэкономил, сейчас зато трачу его.

Уже весь изругался на тему "какой болван тут накодил - руки бы ему оторвал!" wink.gif

Спустя 2 часа, 3 минуты, 1 секунда (2.07.2012 - 14:58) goodguy написал(а):
Согласен с вами, парни. Сегодня как раз весь день переделывал. И, таки, переделал =) Ибо сам знаю, к чему это часто приводит biggrin.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.