2011-09-18 64 views
1

在我的网页上我有一个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)); 
?> 

我不知道我做了正确的事情。当然,我现在可以看到空格被+符号替换的问题。但我在想,这本书不是我做的。

回答

2

你可以提高你的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来避免这种情况。

+0

并为PHP部分?现在它怎么样? –

+0

我不知道为什么人们试图建立查询字符串本身..你看到很多这样的问题,像这些.. – Baz1nga

+0

@Cristian Calu,你的PHP部分似乎很容易受到SQL注入。我不是PHP的专家,但在SQL查询中查看$ value和$ ID,恐怕情况会如此。 –

相关问题