如何将数据从浏览器发送到服务器并回复回复
问题描述:
在我的网页上我有一个textarea,用户可以在其中输入所有类型的字符。
当他保存它时,我想使用AJAX将数据发送到服务器以存储在数据库中。之后,服务器将把数据发送回浏览器进行显示。如何将数据从浏览器发送到服务器并回复回复
这是正确的方法吗?
现在我做一个AJAX调用:
function update()
{
$.ajax({
type: "POST",
url: "ajax/update.php",
data: "ID=" + ID + "&value=" + encodeURIComponent($('#newText').val()),
success: function(html) {
$('#l' + CurrentID).html(decodeURIComponent(html));
}
});
}
和我的PHP文件看起来像这样:
<?php
$ID = $_POST["ID"];
$value = nl2br(urldecode($_POST["value"]));
if (get_magic_quotes_gpc()) {
$value = stripslashes($value);
}
$value = htmlentities($value);
$value = str_replace("<br />", "", $value);
$value = str_replace("<br/>", "", $value);
$value = str_replace("<br>", "", $value);
mysql_query("update MyTable set value = '$value' where id = $ID");
echo html_entity_decode(urlencode($value));
?>
我不知道我做了正确的事情。当然,我现在可以看到空格被+符号替换的问题。但我在想,这本书不是我做的。
答
你可以提高你的AJAX调用是这样的:
$.ajax({
type: "POST",
url: "ajax/update.php",
data: { ID: ID, value: $('#newText').val() },
success: function(html) {
$('#l' + CurrentID).html(html);
}
});
注意的数据是如何使用的对象发送。您不再需要担心正确的网址编码。 jQuery负责它。
此外,您的PHP似乎很容易受到SQL注入。您应该使用prepared statements来避免这种情况。
并为PHP部分?现在它怎么样? –
我不知道为什么人们试图建立查询字符串本身..你看到很多这样的问题,像这些.. – Baz1nga
@Cristian Calu,你的PHP部分似乎很容易受到SQL注入。我不是PHP的专家,但在SQL查询中查看$ value和$ ID,恐怕情况会如此。 –