$ _GET $ _POST проблема перезаписи URL PHP - PullRequest
0 голосов
/ 19 апреля 2011

Я работаю над системой поддержки для пользователей моего сайта, и у меня возникают проблемы с отправкой моих данных POST. По сути, я хочу, чтобы участник перешел на страницу comic_profile, щелкнул значок «Добавить в избранное», обновил страницу и сказал, что комикс добавлен в избранное.

Мой URL: http://www.talesstudio.com/comic_profile.php?comicid=3

Моя проблема в том, что каждый раз, когда я нажимаю на значок избранного, URL-адрес превращается в: http://www.talesstudio.com/comic_profile.php?addfav=Submit Затем страница выдает ошибку «MISSING DATA TO RUN», потому что комический идентификатор не перехватывается.

Вот любимая иконка / код формы:

 <?php echo "$comicname"; ?> <?php
$sql3 = mysql_query("SELECT * FROM Favorites WHERE comic_id='$comicid' AND user_id='$userid' LIMIT 1");
$count3 = mysql_num_rows($sql3);
if ($count3 < 1) {
    echo '<form action="comic_profile.php?comicid='.$comicid.'&" method="GET">
<input type="button" name="addfav" src="images/addfav.png"></form>';

} else{
    echo 'imagefile';
}

$comicid = ereg_replace("[^0-9]", "", $_GET['comicid']); // filter everything but numbers for security
if ($comicid == "") {
    echo "Added to your favorites.";
    exit();
}

И мой код SQL / POST:

 if( isset($_POST["addfav"]))
  { $sqlfav = mysql_query("INSERT INTO Favorites (user_id, comic_id) VALUES ('$userid','$comicid')");     
     exit();
  }

Я, вероятно, делаю что-то простое и глупое, чего просто не вижу. Есть мысли?

Ответы [ 2 ]

1 голос
/ 19 апреля 2011

Установите метод добавления вашей любимой формы в POST (для вашего isset ()). Это должно сделать это.

0 голосов
/ 19 апреля 2011

Вы должны изменить свою форму на method="POST". Это отправит данные формы в теле сообщения, что не приведет к изменению строки запроса в URL.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...