Перейти к содержимому


Партнерская программа Expressrxsales

Как сделать, чтобы при обновлении страницы удалялась глобальная переменная?

#1 surfer

surfer
  • Заблокированные
  • 1 956 сообщений
  • Репутация: 71
0

Отправлено 24 Декабрь 2009 - 17:11

то при обновлении $_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
}

 

 

  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85
Советую обратить внимание на следующее:
  1. Передача данных между страницами.
  2. Запретить повторный POST
  3. Как сделать разавторизацию?
  4. Отображение каталога на html странице
  5. При обновлении страницы дублируются (удваиваются) комментарии

#2 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 25 Декабрь 2009 - 16:59

Перенаправление делай сразу же после выполненных действий, и не забывай завершить исполняемую программу:
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'];
}
header("location: {$_SERVER['PHP_SELF']}"); // перенаправляем на текущую страницу
exit(); // завершаем обработку(иначе исполнение скрипта продолжится)
}
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
}
?>


Внимание:
Не злоупотребляй перенаправлениями и знай, что перенаправление должно идти до любого вывода в браузер контента, т.е. до любого echo, print и так далее.
Если ты уже начнёшь формировать тело сообщения(отсылаемое пользователю при запросе на сервер), то сервером тут же заголовки отправятся клиенту. Поэтому при поытке передать заголовок location после формирования тела, ты получишь предупреждение, что заголовки уже были отправлены клиенту.
  • 0

#3 surfer

surfer
    Topic Starter
  • Заблокированные
  • 1 956 сообщений
  • Репутация: 71

Отправлено 28 Декабрь 2009 - 13:51

а если не получается использовать header, что еще можно использовать?
  • 0


Оформление форума – IPBSkins.ru