mat*_*mat 5 php mysql facebook
早上好,我终于设法在Facebook登录后将Facebook用户名存储在我的数据库中.唯一的问题是需要重新加载Facebook登录后用户被重定向到的页面(我第一次只得到一个空页面).你可以参考我之前的问题,因为我已经在那里发布了所有代码
更新:我注意到页面只需要第一次刷新(当用户信息尚未存储在数据库中时,它会快速且很好地加载页面.请帮助!;-)
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);
}
?>
Run Code Online (Sandbox Code Playgroud)
更新4*****:我找到了解决方案.您可以在下面查看我的答案.感谢大家.
最后我成功了。当然这是一个重定向问题。但在index.php和user_page.php中添加sql都不起作用。我最终将用户从 Facebook 页面重定向到“login.php”,如果是新记录,则添加到数据库,然后重定向到 user_page.php。这是login.php的代码:
<?php
mysql_connect('HOST', 'USER', 'PSW');
mysql_select_db('MYDATABASE');
require 'library/facebook.php';
// Create our Application instance (replace this with your appId and secret).
$facebook = new Facebook(array(
'appId' => 'MYID',
'secret' => 'MYSECRET',
'cookie' => true));
// Get User ID
$user = $facebook->getUser();
if($user){
$user_profile = $facebook->api('/me');
$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']}')");
header('Location: user_page.php');
}else{
header('Location: user_page.php');
}
}else{
header('Location: logout.php');
}
?>
Run Code Online (Sandbox Code Playgroud)