另一个就地编辑器 - 一个jQuery编辑就地插件

时间:2012-04-07 21:25:21

标签: php javascript jquery mysql

我正在试图弄清楚如何将更改后的值提交到数据库,但到目前为止我还没有多少运气。关于我做错了什么的任何想法?

JS文件:

$("#editme5").editInPlace({
    /*saving_animation_color: "#ECF2F8",
    callback: function(idOfEditor, enteredText, orinalHTMLContent, settingsParams, animationCallbacks) {
        animationCallbacks.didStartSaving();
        setTimeout(animationCallbacks.didEndSaving, 2000);
        return enteredText;
    },*/
    url: "server.php",
    params: "name=BUSINESS_NAME"
});

PHP文件:

include('database.php');
$_GET['name'];
$_NAME=$_GET['name'];

$update = $_POST['update_value'];
$insert = "UPDATE CLIENTS SET ".$_NAME."='".$update."'";
mysql_query($insert) or die (mysql_error());

2 个答案:

答案 0 :(得分:3)

尝试更改:

include('database.php');
$_GET['name'];
$_NAME=$_GET['name'];

要:

include('database.php');
$_NAME=$_POST['name'];

文档说:

  

提交就地编辑器表单后,它会发送一个POST请求   编辑器参数中指定的URL以及三个   表格字段

通过编写$_NAME=$_GET['name'];,您期望值超过GET请求,但插件会使用POST请求发送值。我想这就是罪魁祸首。

另外,请记住Marc B在评论中所说的话。该代码非常适合SQL注入攻击。为了降低其可用性,请使用至少 mysql_real_escape_string()(更多:http://php.net/manual/pl/function.mysql-real-escape-string.php)或使用预准备语句(一个好的教程:http://www.ultramegatech.com/2009/07/using-mysql-prepared-statements-in-php/)。

答案 1 :(得分:1)

尝试使用$_REQUEST,可以帮助您在示例时捕获$_GET$_POST请求...

尝试使用mysql_real_escape_string修复SQL注入漏洞,请参阅http://php.net/manual/en/function.mysql-real-escape-string.php以获取更多信息

由于