|
|
|
| а то при обновлении $_POST['add'] не уничтожается
if (isset($_POST['add']))
{
if(!get_magic_quotes_gpc())
{
$name = mysql_escape_string($_POST['name']);
$response = mysql_escape_string($_POST['response']);
}
else
{
$name = $_POST['name'];
$response = $_POST['response'];
}
}
if (isset($_POST['press']))
{
?>
<form name="add" action="index.php?module=guestbook" method="POST">
<input type="text" name="name" value="" />
<textarea name="response" rows="4" cols="20">
</textarea>
<input type="submit" name="add" value="Добавить отзыв" />
</form>
<?php
}
|
| |
|
|
|
|
|
|
|
для: Bvz
(24.12.2009 в 16:29)
| | И где тут обновление? О каком обновлении речь? | |
|
|
|
|
|
|
|
для: sim5
(24.12.2009 в 16:33)
| | я имел ввиду если обновить страницу например F5 то данная переменная сохраняется как ее удалить? | |
|
|
|
|
|
|
|
для: Bvz
(24.12.2009 в 16:47)
| | не сохраняется, а передается броузером заново... о чем нормальные броузеры честно предупреждают. | |
|
|
|
|
|
|
|
для: Bvz
(24.12.2009 в 16:47)
| | Делайте перенаправление. | |
|
|
|
|
|
|
|
для: sim5
(24.12.2009 в 16:54)
| | как? | |
|
|
|
|
|
|
|
для: Bvz
(24.12.2009 в 16:57)
| | header() | |
|
|
|
|
|
|
|
для: sim5
(24.12.2009 в 17:04)
| | а куда его вставить? :) | |
|
|
|
|
|
|
|
для: Bvz
(24.12.2009 в 17:14)
| | В начало кода | |
|
|
|
|
|
|
|
для: seitbekir
(24.12.2009 в 17:19)
| | По каким соображениям? | |
|
|
|
|
|
|
|
для: Bvz
(24.12.2009 в 17:14)
| | Передача заголовков должна происходиь до любого вывода в браузер, а куда вам конкретно вставлять, я не знаю, но это должно исполнятся при удачном сохранении данных полученных от формы. Так что думайте и смотрите, где это "ваше место". При этом, перенаправление может быть на другую страницу, а может быть и на саму себя. | |
|
|
|
|
|
|
|
для: sim5
(24.12.2009 в 17:37)
| | до передачи заголовка не должно быть не одного символа!
иначе облом!
<?
echo 'a';
header("Location: http://somwhere.dm");
?>
|
Работать не будет.
а если так:
<?
header("Location: http://somwhere.dm");
echo 'a';
?>
|
будет!
Источник:http://www.phpfaq.ru/headers | |
|
|
|
|
|
|
|
для: seitbekir
(24.12.2009 в 19:00)
| | Уважаемый, я это знаю. Я вам совсем по другому поводу вопрос задал - по каким соображениям перенаправление обязательно в начало кода?
Логику работы кода вашего закладываете вы, а условия задает разработчик, но он совсем не заставляет вас этим писать код коряво, не логично. | |
|
|
|
|
|
|
|
для: seitbekir
(24.12.2009 в 19:00)
| | Решил разжевать пост sim5.
Вы советуете сделать так:
<php
header();
код обработчика;
?>
Но куда логичнее и правильнее сделать так:
<php
код обработчика;
header();
?>
Вы ведь не будете спорить, что во втором варианте заголовок отправляется никак не в начале скрипта. | |
|
|
|
|
|
|
|
для: neadekvat
(24.12.2009 в 19:37)
| | . | |
|
|
|
|
|
|
|
для: Bvz
(24.12.2009 в 16:29)
| | Из формы можно передать дополнительным параметром в скрытом поле случайно сгенерированное число, записав его также в сессию. На странице получения данных из формы сравнить значения этого параметра принятого из формы и того, который в сессии, при их совпадении обработать POST-данные, при пустом параметре в сессии не обрабатывать POST-данные.. Затем обнулить параметр в сессии. | |
|
|
|
|
|
|
|
для: Loneliness
(27.12.2009 в 22:44)
| | А хидера не достаточно? | |
|
|
|
|
|
|
|
для: sim5
(28.12.2009 в 05:52)
| | а если не получается использовать header, что еще можно использовать? | |
|
|
|
|
|
|
|
для: Bvz
(28.12.2009 в 13:51)
| | Почему не получается? | |
|
|
|
|
|
|
|
для: sim5
(28.12.2009 в 14:27)
| | потому что до header ужу выводятся символы | |
|
|
|
|
|
|
|
для: Bvz
(28.12.2009 в 16:25)
| | А разве трудно написать структуру кода так, чтобы все работало? | |
|
|
|
|
|
|
|
для: sim5
(28.12.2009 в 05:52)
| | Достаточно, по сути, однако из личных наблюдений- порой браузеры не совсем хорошо реагируют на такие редиректы. Opera 9-10 периодически выдает, например, Moved Here со ссылкой на страницу редиректа. К тому же, после перенаправления зловредный пользователь может тыкать кнопку Назад, и обновлять страницу, творя повторы. Плюс редирект увеличит время перехода после отправки формы, поскольку сперва передаются данные на страницу с header, затем на страницу редиректа. По мне- зачем такие дополнительные движения и траффик для пользователя? | |
|
|
|
|
|
|
|
для: Loneliness
(29.12.2009 в 06:25)
| | Не наблюдал ни разу подобного под Оперой, может быть это возникает только при некоторых условиях.
Не так часто требуются перенаправления, чтобы говорить о дополнительных движениях и трафике. Ну и добавить простейшую проверку не так сложно, да и форму можно выводить так, что действительна она будет только единожды, и кнопка Назад будет возвращать ее устаревший слепок, недействительный.
Кстати, по F5 переменная в сессии будет порождаться вновь, а значит не поможет. | |
|
|
|
|
|
|
|
для: sim5
(29.12.2009 в 07:01)
| | Если страницы две- одна с формой и определением
переменной в сессию, а вторая с проверкой этой переменной
и ее обнулением,то на F5 ничего не возрождается. Повторы не идут,проверял. | |
|
|
|
|
|
|
|
для: Loneliness
(27.12.2009 в 22:44)
| | . | |
|
|
|