Witam,
Od długiego czasu nie mogę rozwiązać problemu z logowaniem otóż mam taki kod który odpowiednio powinien zalogować użytkownika a jeśli jest to pierwszy raz to jeszcze dodać jego dane do bazy.
Po kliknięciu logowania z FB, strasznie długo dane się przetwarzają a w efekcie pojawia się komunikat:

Kod logowania:
<?php
// załączenie biblioteki facebook.php
require 'biblioteka/facebook.php';
/**
* Połączenie z Facebook
* */
function connectToFacebook()
{
// utworzenie obiektu $facebook
$facebook = new Facebook
(array( 'appId' => 'XXX', // application id
'secret' => 'XXXXXX', // secret
'cookie' => true,
));
return $facebook;
}
/**
* pobranie danych użytkownika
* */
function getUser($facebook)
{
// pobranie sesji
$user = $facebook->getUser();
// utworzenie pustego obiektu użytkownika
$me = null;
// jeżeli użytkownik jest zalogowany na Facebooku
// do zmiennej $uid zostanie zapisany identyfikator użytkownika
// do zmiennej $me zostaną zapisane dane użytkownika
if ($user) {
try {
$uid = $facebook->getUser();
$me = $facebook->api('/me');
} catch (FacebookApiException $e) {
}
}
return $me;
}
/**
* rejestracja nowego użytkownika
* */
function registerNewUser($me)
{
require 'db_conn.php';
$insert = "INSERT INTO users (imie, nazwisko, email, haslo, fb_id) VALUES (" .
"'" . $me['first_name'] . "', " .
"'" . $me['last_name'] . "', " .
"'" . sha1
(time() ) . "', " . // generowanie losowego hasła "'" . $me['id'] . "')";
$result = $conn->query($insert);
$affected = $conn->affected_rows;
$conn->close();
if ($affected == 1)
return true;
else
return false;
}
/**
* pobranie adresu url
* */
function getUrl($me)
{
// url do wylogowania/zalogowania użytkownika z Facebooka
if ($me) {
$linkUrl = $facebook->getLogoutUrl();
} else {
$linkUrl = $facebook->getLoginUrl();
}
return $linkUrl;
}
?>
i odpowiednio to co widzi użytkownik:
<?php
session_start();
require 'facebook_connect.php';
// pobranie danych z Facebooka
$facebook = connectToFacebook();
$me = getUser($facebook);
// w przypadku otrzymania danych z Facebooka nestępuje automatyczne przekierowanie do skryptu logującego użytkownika
// aby zapewnić możliwość wylogowania z facebooka z dowolnego miejsca w serwisie zapiywany będzie do sesji wygenerowany link
if ($me) {
$_SESSION['logoutUrl'] = $facebook->getLogoutUrl();
header('Location: zaloguj.php');
exit;
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html xmlns="http://www.w3.org/1999/xhtml"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Language" content="pl" /> <meta name="AUTHOR" content="Mikołaj Gnaciński@www.weeby.pl" /> <link rel="stylesheet" type="text/css" href="style.css" />
<title>Logowanie za pomocą Facebook Connect
</title>
<?php
// użytkownik zalogowany nie może się ponownie logować
if ($SESSION['id'] != null):
?>
<h2>Jesteś już zalogowany
</h2> <?php
// wyświetlenie formularza logowania
else:
// w przypadku błędnego logowania wyświetlenie komunikatu
if ($_SESSION['isLogin'] == 2) {
echo '<h2>Błędny login lub hasło!
</h2>';
$_SESSION['isLogin'] = 0;
}
//
else if ($_SESSION['isLogin'] == 3) {
echo '
<h2>Nieudana rejestracja nowego użytkownika!
</h2>';
$_SESSION['isLogin'] = 0;
}
?>
<form enctype="application/x-www-form-urlencoded" method="post" action="zaloguj.php"> E-mail:
<br /><input type="text" name="email" /> Hasło:
<br /><input type="password" name="haslo" /> <input type="submit" value="Zaloguj" />
<a href="<?php echo $facebook->getLoginUrl() ?>" class="facebook_login">
<img src="http://static.ak.fbcdn.net/rsrc.php/zB6N8/hash/4li2k73z.gif"> <?php endif; ?>