Facebook PHP SDK – Memorizza i dati dell'utente nel database MYSql

Sono totalmente nuovo a PHP e MySQL ma sto implementando l'SDK PHP di Facebook nel mio sito web. Tutto funziona bene finora, ma sto faticando ad aggiungere i dati dell'utente al mio database (MySQL). Tutto quello che ho è un numero al posto del nome utente e oauth_uid (ottengo il numero 5 per entrambi i campi). Questo è il codice:

<?php define('db_user','myUserName'); define('db_password','myPassword'); define('db_host','myHost'); define('db_name','myDbName'); // Connect to MySQL $dbc = @mysql_connect (db_host, db_user, db_password) OR die ('Could not connect to MySQL: ' . mysql_error() ); // Select the correct database mysql_select_db (db_name) OR die ('Could not select the database: ' . mysql_error() ); require 'lib/facebook.php'; // Create our Application instance (replace this with your appId and secret). $facebook = new Facebook(arrays( 'appId' => 'MYAPPID', 'secret' => 'MYSECRET', 'cookie' => true)); // Get User ID $user = $facebook->getUser(); // We may or may not have this data based on whether the user is logged in. // // If we have a $user id here, it means we know the user is logged into // Facebook, but we don't know if the access token is valid. An access // token is invalid if the user logged out of Facebook. if ($user) { try { // Proceed knowing you have a logged in user who's authenticated. $fbuid = $facebook->getUser(); $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['id']); $result = mysql_fetch_arrays($query); 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_arrays($query); } // Login or logout url will be needed depending on current user state. if ($user) { $paramsout = arrays('next'=>'http://www.mywebsite.com/test/logout.php'); $logoutUrl = $facebook->getLogoutUrl($paramsout); } ?> 

La pagina sopra è chiamata user_page.php ed è where l'utente viene reindirizzato dopo l'accesso. Ho provato a spostare il codice "database" su index.php (where l'utente esegue il login) ma each sforzo finora non ha avuto successo. Questo è il codice per index.php:

 require 'lib/facebook.php'; // Create our Application instance (replace this with your appId and secret). $facebook = new Facebook(arrays( 'appId' => 'MYAPPID', 'secret' => 'MYSECRET', 'cookie' => true)); // Get User ID $user = $facebook->getUser(); if ($user) { try { // Proceed knowing you have a logged in user who's authenticated. $fbuid = $facebook->getUser(); $user_profile = $facebook->api('/me'); header('Location: user_page.php'); } 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(Array('scope'=> 'user_interests,user_activities,user_education_history,user_likes,user_about_me, user_birthday, user_groups, user_hometown, user_work_history, email', 'redirect_uri' => 'http://www.mywebpage.com/test/user_page.php') ); } ?> 

AGGIORNAMENTO * PROBLEMA FISSATO ($ user_profile anziché solo $ utente):

  $query = mysql_query("SELECT * FROM users WHERE oauth_provider = 'facebook' AND oauth_uid = ". $user_profile['id']); $result = mysql_fetch_arrays($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_arrays($query); } 

I dati dell'utente di Facebook nel tuo codice sono memorizzati sotto $user_profile e non $user .