0

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

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());
4

2 回答 2

3

尝试改变:

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

到:

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

文档说:

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

通过写作$_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/)。

于 2012-04-07T21:34:52.700 回答
1

尝试使用$_REQUESTwhich 可以帮助您捕获两者$_GET$_POST在采样时请求...

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

谢谢

于 2012-04-07T21:57:02.293 回答