3

次のスニペットは、データを収集して php ファイルに送信する必要があります。ボタンをクリックすると、適切な値が出力されます。

var dataString = 'username='+SessionVars.my_username+'&lessonid='+SessionVars.my_lesson_number;
$('#tracking_submit').click(function(){
$.ajax({
    url: "php/tracking.php",
    type:'POST',
    data: dataString,
    success: function(){
    $('#tracking_message').replaceWith(SessionVars.my_username+"Thank you for updating."+SessionVars.my_lesson_number);
    }                   
    });
return false;   
});

次に、私が使用しているphpファイルの部分は次のとおりです。

session_start(); 
mysql_connect("stuff i tested and it works");
mysql_select_db("same");

$username=$_POST['username'];
$lessonid=$_POST['lessonid'];

mysql_query("INSERT INTO tracking ( username, lessonid ) VALUES ( ".$username.", ".$lessonid." );");

データベースを確認すると、何もありません。

4

4 に答える 4

2
mysql_query("INSERT INTO tracking ( username, lessonid ) VALUES ('".$username."', ".$lessonid." );");

その行の引用符を逃しました。また、 SQL インジェクションについてもお読みください。

于 2012-09-09T16:22:30.557 に答える
1

クエリの値を引用符で囲んでいないため、これは機能しません。これは、ハッキングの防止にも役立ちます。

mysql_query("INSERT INTO tracking ( username, lessonid ) VALUES ( '".mysql_real_escape_string($username)."', '".mysql_real_escape_string($lessonid)."' )");
于 2012-09-09T16:22:44.783 に答える
1

への変更..

$.ajax({
    url: "php/tracking.php",
    type:'POST',
    cache: false,
    dataType: "json",
    data: {username: SessionVars.my_username, lessonid: SessionVars.my_lesson_number}, 
    success: function(){
    $('#tracking_message').replaceWith(SessionVars.my_username+"Thank you for updating."+SessionVars.my_lesson_number);
    }                   
    });
return false;   
});

次のページで print_r ($_POST) を実行します。また、はい、いくつかのSQLインジェクション防止について読む必要があります。

于 2012-09-09T16:26:37.060 に答える
0

問題はphpファイルにあり、上記の男の助けを借りて解決されました:

$username=mysql_real_escape_string($_POST['username']);
$lessonid=mysql_real_escape_string($_POST['lessonid']);

mysql_query("INSERT INTO wtf ( username, lessonid ) VALUES ( '".$username."', '".$lessonid."' );");
于 2012-09-09T16:37:15.517 に答える