2013-03-21 3 views
0

У меня есть <a href> в моей веб-странице, которая имеет следующую ссылку:

<a href=\"?remove=0\">Remove</a>

Какой штраф. Я затем ссылаться на него в следующем:

if(isset($_REQUEST['remove']))

Для того, чтобы проверить, если он был установлен, а затем выполнить относительные действия (удаление значения из массива).

НО, когда я нажимаю другую форму в моей странице PHP, который установлен в method='POST', значение $_GET остается в строке URL и поэтому, следовательно, по какой-то причине передается снова и разрушает мою программу.

Любые мысли?

+0

Как вы создаете URL-адрес второй формы на своей странице? – andrewsi

+0

О, я не, я просто '' form method = "POST"> ' – Chud37

ответ

5

Похоже, вам не хватает action= в вашей форме. Если вы не укажете, где должна размещаться форма, она отправляется в текущий URL-адрес, включая строку запроса.

Сообщений в текущем URL:

<form method="post"> 

Сообщений в URL-адрес указывается:

<form method="post" action="mypage.php"> 
+0

Я .. Не знал этого. Это первый раз, когда я действительно оставил часть действия так. – Chud37

+0

я буду! theres ограничение срока. – Chud37

0

Удаление звуков, как опасную операцию. Он не должен выполняться в ответ на запрос GET: пользователь может перезагрузить страницу, случайно удалив что-то еще, или поисковый робот может следовать за этой ссылкой и удалить что-то (при условии, конечно, что у него есть разрешения). Даже браузеры в настоящее время делают предварительную выборку - что происходит, если одна из предварительно выбранных ссылок является ссылкой на удаление?

Таким образом, было бы целесообразно, чтобы проверить

if (isset($_POST['remove'])) 

и преобразовать ссылку, чтобы удалить в форму.

+0

Я рассматривал это, вы можете быть там. – Chud37

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