2012-04-07 14 views
0

私は変更された値をデータベースに提出する方法を理解しようとしていますが、これまでのところ大したことはありませんでした。私は間違って何をしているかについての任意のアイデアですか?インプレイスエディタ - 場所プラグインのjQuery編集

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()); 
+0

を試してみて、私たち...あなたがサンプル時間の両方で$_GET$_POST要求をキャプチャすることができます$_REQUESTを使用してみてくださいどのエディタを使用しているか、どのようにフォームを提出するかを知っているだけでしょうか?ちなみに、良いSQL注入穴。あなたはあなたのデータベースをごみ箱で楽しんでください。 –

+0

私はすでにそれを知っています。私はちょうど最初に働くことをしたい。 –

答えて

3

変更してみてください:

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

へ:

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

ドキュメントは言う:

インプレースエディタのフォームが送信されると、それは3つの フォームフィールド

によってとともにエディタのパラメータで指定されたURLを するPOSTリクエストを送信しますGETリクエストが来ると期待していましたが、プラグインはPOSTリクエストを使用して値を送信します。それがここの犯人です。

また、Marc B氏のコメントにも注意してください。このコードは、SQLインジェクション攻撃に対して非常に脆弱です。それはあまりvunerableようにするには、少なくとも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/)を使用します。

+0

技術的には、OPのこのエディタはクエリ文字列とポストデータの両方を使用している可能性がありますが、わかりません。しかし、クライアント側からDBフィールド名を渡すことは、普通のSQLインジェクションホールよりもさらに恐ろしいことです。 –

関連する問題