Ajax в PHP, не обновляется? - PullRequest
       0

Ajax в PHP, не обновляется?

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

Вот мой файл index.php:

<script type="text/javascript">
function addHit(str){
    $.post("http://www.site.com/addclick.php", { id: str })
};
</script>

<a href="javascript:;" onClick="addHit('928'); return false;">update ID 928 with 1 click</a>

Вот мой addclick.php

$id = $_POST['id'];
mysql_query("UPDATE `table` SET `x` = `x` + '1' WHERE `id` = '" . $id . "'");

Если у меня WHERE id = '1', он обновляется row 928 отлично, но когдаэто установлено как переменная post, это не так.Единственное, о чем я могу думать, это то, что вызов ajax неправильно анализирует идентификатор.

Что с этим не так?

Ответы [ 2 ]

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

Почему бы не проверить, что такое $ _POST, прежде чем вслепую вставить его в вашу базу данных? Я мог бы взломать скрипт, который устанавливает id = 'Robert\'; drop table students -- и убить вашу базу данных.

$id = intval($_POST['id']);
$sql = "UPDATE `table` SET x=x+1 WHERE id=$id";
$result = mysql_query($sql);
if ($result === FALSE) {
    die("query failed: " . mysql_error());
}
0 голосов
/ 20 апреля 2011

Не уверен на 100%, но это может быть потому, что в jquery вы не указали идентификатор в кавычках, как это:

$.post("http://www.site.com/addclick.php", { 'id': str })

Это значит, что ваш идентификатор - это переменная, а не имяпеременной ...

Надеюсь, это поможет.

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