早上好,我终于设法Facebook的用户名存储在Facebook登录后,我的数据库。唯一的问题是,当用户重定向到后的Facebook登录需要重新加载页面(我得到的只是一个空白页第一次)。你可以请参考我以前的问题,因为我已经发布了所有代码there重定向PHP页面没有加载,除非我打刷新
更新:我注意到页面只需要第一次刷新(当用户信息尚未存储在数据库中时,那么它的快速和很好地加载页面,请帮助!;-)
UPDATE2:有没有一种方法来自动刷新页面(只是一次)后,新用户已被添加? 很多谢谢!
更新3:我张贴代码....当我刷新页面,它只能....任何想法?
<?php
mysql_connect('host', 'username', 'password');
mysql_select_db('table');
require 'library/facebook.php';
// Create our Application instance
$facebook = new Facebook(array(
'appId' => 'MYID',
'secret' => 'MYSECRET',
'cookie' => true));
// Get User ID
$user = $facebook->getUser();
if ($user) {
try {
// Proceed knowing you have a logged in user who's authenticated.
$user_profile = $facebook->api('/me');
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}else{
header('location: index.php');
}
$query = mysql_query("SELECT * FROM users WHERE oauth_provider = 'facebook' AND oauth_uid = ". $user_profile['id']);
$result = mysql_fetch_array($query);
if(empty($result)){
$query = mysql_query("INSERT INTO users (oauth_provider, oauth_uid, username) VALUES ('facebook', {$user_profile['id']}, '{$user_profile['name']}')");
$query = msyql_query("SELECT * FROM users WHERE id = " . mysql_insert_id());
$result = mysql_fetch_array($query);
}
if ($user) {
$paramsout = array('next'=>'http://www.mywebsite/test/logout.php');
$logoutUrl = $facebook->getLogoutUrl($paramsout);
}
?>
UPDATE 4 *****:我发现了一个解决方案。你可以看看我的答案。感谢大家。
你想要的是你能不能请详细说明什么 –
我希望我的页面在登录后不需要重新加载。当用户从Facebook登录重定向到我的网页(user_page.php)我用身体的唯一背景颜色得到一个空白页。我必须按下重新加载按钮才能加载页面。我希望现在更清楚。我认为这个问题是由我的数据库查询在代码中的错误“位置”引起的,我无法弄清楚。 – mat
你的'user_page。php代码不完整,如果用户已经注册,会发生什么?没有?还为什么要求用户id两次'$ fbuid = $ facebook-> getUser();'? – ifaour