簡體   English   中英

另一個就地編輯器 - 一個 jQuery 就地編輯插件

[英]Another In Place Editor - a jQuery edit in place plugin

我試圖弄清楚如何將更改后的值提交給數據庫,但到目前為止我一點運氣都沒有。 知道我做錯了什么嗎?

文件:

$("#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());

嘗試改變:

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/ )。

嘗試使用$_REQUEST ,它可以幫助您在樣本時間捕獲$_GET$_POST請求...

嘗試使用mysql_real_escape_string修復 SQL 注入孔,更多信息請參見http://php.net/manual/en/function.mysql-real-escape-string.php

謝謝

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM