ho scaricato l'sdk di facebook ho completato tutto, quando uno si registra tramite facebook sul mio sito può soltanto accedere solo tramite facebook e non dal form del sito, vorrei fare qualche modifica tipo che prende il nome utente ad esempio www.facebook/nome.utente poi anche la password e dovrà essere criptata con md5, ho provato a cambiarlo ma non funziona, qualche aiuto?
in pratica quando prende la password e il nome utente, potrà accedere anche su un altro sito... questo lo salverà nel database, poi quando faccio accedi tramite facebook ho un altro problema non me lo salva nel database l'email
questo è la tabella dell'email e la password
Codice:
name="email"
name="password"
questo file è chiamato logi-facebook.php
Codice PHP:
<?php
require 'facebook/facebook.php';
require 'config/fbconfig.php';
require 'config/functions.php';
$facebook = new Facebook(array(
'appId' => APP_ID,
'secret' => APP_SECRET,
));
$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;
}
if (!empty($user_profile )) {
# User info ok? Let's print it (Here we will be adding the login and registering routines)
$username = $user_profile['name'];
$uid = $user_profile['id'];
$email = $user_profile['email'];
$user = new User();
$userdata = $user->checkUser($uid, 'facebook', $username,$email,$twitter_otoken,$twitter_otoken_secret);
if(!empty($userdata)){
session_start();
$_SESSION['id'] = $userdata['id'];
$_SESSION['oauth_id'] = $uid;
$_SESSION['username'] = $userdata['username'];
$_SESSION['email'] = $email;
$_SESSION['oauth_provider'] = $userdata['oauth_provider'];
header("Location: home.php");
}
} else {
# For testing purposes, if there was an error, let's kill the script
die("There was an error.");
}
} else {
# There's no active session, let's generate one
$login_url = $facebook->getLoginUrl(array( 'scope' => 'email'));
header("Location: " . $login_url);
}
?>
fuctions.php
Codice PHP:
<?php
require 'dbconfig.php';
class User {
function checkUser($uid, $oauth_provider, $username,$email,$twitter_otoken,$twitter_otoken_secret) { $query = mysql_query("SELECT * FROM `users` WHERE oauth_uid = '$uid' and oauth_provider = '$oauth_provider'") or die(mysql_error()); $result = mysql_fetch_array($query); if (!empty($result)) { # User is already present } else { #user not present. Insert a new Record $query = mysql_query("INSERT INTO `users` (oauth_provider, oauth_uid, username,email) VALUES ('$oauth_provider', $uid, '$username','$email')") or die(mysql_error()); $query = mysql_query("SELECT * FROM `users` WHERE oauth_uid = '$uid' and oauth_provider = '$oauth_provider'"); $result = mysql_fetch_array($query); return $result; } return $result; }
}
?>
grazie per l'aiuto