我在脚本中有一些代码获取一些值并将它们发布到php(我已经知道工作)应该添加到数据库但不是吗?只是想知道什么是错的,我的猜测是它从来没有真正到我的php文件?任何想法?
FB.Event.subscribe('auth.login', function(response)
{
FB.api('/me', function(response) {
$.post("usersignup.php", { facebookid: response.id, email: response.email, firstname: response.first_name, lastname: response.last } );
});
usersignup.php的相应部分看起来像这样
mysql_select_db ($database);
$fbid = $_POST['facebookid'];
$fn = $_POST['firstname'];
$ln = $_POST['lastname'];
$em = $_POST['email'];
$query = "INSERT INTO user";
$query .= "(facebookid, firstname, lastname, email) VALUES ('$fbid','$fn','$ln','$em')";
$results = mysql_query($query, $link);
$mediaid = mysql_insert_id();
答案 0 :(得分:1)
好的,所以可能有一个php错误让我们添加一些错误处理...
修改你的PHP:
ini_set('display_errors', 1);
if(!mysql_select_db ($database))
{
echo 'Could not connect';
exit;
}
else
{
$fbid = $_POST['facebookid'];
$fn = $_POST['firstname'];
$ln = $_POST['lastname'];
$em = $_POST['email'];
$query = "INSERT INTO user";
$query .= "(facebookid, firstname, lastname, email) VALUES ('$fbid','$fn','$ln','$em')";
if(!$results = mysql_query($query, $link))
{
echo 'Query failed: '.mysql_error();
exit;
}
$mediaid = mysql_insert_id();
echo 'Success: '. $mediaid;
}
你的js应警告回应:
FB.Event.subscribe('auth.login', function(response)
{
FB.api('/me', function(response) {
$.post("usersignup.php", {
facebookid: response.id,
email: response.email,
firstname: response.first_name,
lastname: response.last
},
function(rdata){ alert(rdata); },
'text'
);
});
});
同时密切注意你的JS错误控制台...如果你的JS有问题它会告诉你。
$.post
是$.ajax
的快捷方式,因此它不支持您提供的完整配置哈希。如果您需要更多控制权,则签名为$.post(url, data, successCallback)
,然后使用$.ajax
。
答案 1 :(得分:0)
我猜你有一个SQL错误。将您的行更改为如下所示:
$results = mysql_query($query, $link) or die(mysql_error());
并查看是否正在生成错误。
我打赌你的一个值正在打破查询。您需要至少通过mysql_real_escape_string()运行所有内容。
$fn = mysql_real_escape_string($_POST['firstname']);
答案 2 :(得分:0)
您的PHP文件未创建与MySQL服务器的连接,并且未定义$database
。