2014-01-17 4 views
0

Я получаю переменные с GET и иметь ссылку, как:Как защитить от resubmiting действия

.../cart.php?article=dress&color=red&qty=1&price=100&action=add 

форме перенаправлять же .php файл и есть:

if(isset($_GET["action"])) 
     { 
     switch($_GET["action"]) 
       { 
     case "add": 
       ...... 
       break; 
       } 
     } 

Как удалить действие из ссылки или каким-либо другим способом защитить повторное действие. Не нужно удалять другие переменные, потому что в форме есть список статей, и когда щелчок назад хорош, чтобы видеть, что есть в списке.

+1

Почему бы не использовать POST и шаблон PRG (http://en.wikipedia.org/wiki/Post/Redirect/Get) для вашей формы? – SirDarius

+0

Я не знаю, это помогло. Я думал, что с POST тоже имеют такую ​​же проблему. –

+0

У меня есть несколько действий из одной формы, эта почта мне поможет? –

ответ

0
unset($_GET['action']); 
header("Location: cart.php?" . http_build_query($_GET)); 
+0

Правильно ли я понял: Если я использую POST, форма не будет повторно отправлена, но пользователь не увидит список уже добавленных статей под формой при нажатии. Barmar Я должен установить снизу на всех моих страницах, чтобы быть уверенным, что всегда должны быть отменены действия или положить это в дело? –

+0

Предупреждение: невозможно изменить информацию заголовка - заголовки, уже отправленные ... –

+0

Вы можете найти ответы на многие вопросы о SO. – Barmar

Смежные вопросы