2012-04-11 16 views
-1

私はfacebookユーザーからログイン情報を取得するこのコードを持っています。それはある点まで働く。配列形式で情報を取得して印刷します。その配列情報をデータベースにどのように渡すのですか?私は何かを試しましたが、合格していないようです。ありがとう。facebookのログイン情報をデータベースに渡す

<?php 
require '../src/facebook.php'; 
$facebook = new Facebook(array(
'appId' => '*******************', 
'secret' => '*******************************', 
)); 

// 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; 
    } 
} 

// Login or logout url will be needed depending on current user state. 
if ($user) { 
$logoutUrl = $facebook->getLogoutUrl(); 
} else { 
$loginUrl = $facebook->getLoginUrl(); 
    } 
?> 
<!doctype html> 
<html xmlns:fb="http://www.facebook.com/2008/fbml"> 
<head> 
<title>php-sdk</title> 
<style> 
    body { 
    font-family: 'Lucida Grande', Verdana, Arial, sans-serif; 
    } 
    h1 a { 
    text-decoration: none; 
    color: #3b5998; 
    } 
    h1 a:hover { 
    text-decoration: underline; 
    } 
</style> 

 <a href="<?php echo $logoutUrl; ?>">Logout</a> 
     <?php else: ?> 
     <div> 


     <a href="<?php echo $loginUrl; ?>">Login with Facebook</a> 
     </div> 
<?php endif ?> 

<h3>PHP Session</h3> 
<pre><?php print_r($_SESSION); ?></pre> 

<?php if ($user): ?> 
    <h3>You</h3> 
    <img src="https://graph.facebook.com/<?php echo $user; ?>/picture"> 

    <h3>Your User Object (/me)</h3> 
    <pre><?php print_r($user_profile); ?></pre> 
<?php else: ?> 
    <strong><em>You are not Connected.</em></strong> 
<?php endif ?> 

<? 
mysql_connect('localhost', '****', '****'); 
mysql_select_db('***'); 
    # We have an active session; let's check if we've already registered the user 
$query = mysql_query("SELECT * FROM users WHERE oauth_provider = 'facebook' AND oauth_uid = ". $user['id']); 
$result = mysql_fetch_array($query); 

# If not, let's add it to the database 
if(empty($result)){ 
    $query = mysql_query("INSERT INTO users (oauth_provider, oauth_uid, username) VALUES ('facebook', {$user['id']}, '{$user['name']}')"); 
    $query = msyql_query("SELECT * FROM users WHERE id = " . mysql_insert_id()); 
    $result = mysql_fetch_array($query); 
} 
session_start(); 
    if(!empty($user)){ 
    # ... 

    if(empty($result)){ 
     # ... 
    } 

    # let's set session values 
    $_SESSION['id'] = $result['id']; 
    $_SESSION['oauth_uid'] = $result['oauth_uid']; 
    $_SESSION['oauth_provider'] = $result['oauth_provider']; 
    $_SESSION['username'] = $result['username']; 
} 
if(!empty($_SESSION)){ 
header("Location: login.php"); 
} 

    session_start(); 
if(!empty($_SESSION)){ 
header("Location: done.php"); 
    } 
    echo 'Welcome ' . $_SESSION['username']; 
    # or.. 
    echo 'Welcome ' . !empty($_SESSION) ? $_SESSION['username'] : 'guest'; 
    ?> 
</body> 

答えて

0

あなたの与えられたコードは、コード内で、その後$userを何も欠落していない場合はUSER_ID$user_profile変数ユーザデータを負担を負うものとします。

しかし、挿入中に$user変数を使用しました:それは間違っています。挿入中に$user_profile変数を使用すると、期待どおりの結果が得られます。

ありがとうございました

関連する問題