以下片段应该是收集数据并将其发送到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." );");
当我检查数据库时,其中没有任何内容。
答案 0 :(得分:2)
mysql_query("INSERT INTO tracking ( username, lessonid ) VALUES ('".$username."', ".$lessonid." );");
你错过了该行的引用。另外,请阅读SQL Injection。
答案 1 :(得分:1)
这不起作用,因为您没有将查询中的值放入引号中。这应该有助于防止你被黑客攻击:
mysql_query("INSERT INTO tracking ( username, lessonid ) VALUES ( '".mysql_real_escape_string($username)."', '".mysql_real_escape_string($lessonid)."' )");
答案 2 :(得分: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注入预防。
答案 3 :(得分: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."' );");