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 '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'] . "', " . "'" . $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"> <head> <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" /> </head> <body> <div id="header"> </div> <div id="content"> <?php // użytkownik zalogowany nie może się ponownie logować if ($SESSION['id'] != null): ?> <?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) { $_SESSION['isLogin'] = 0; } ?> <form enctype="application/x-www-form-urlencoded" method="post" action="zaloguj.php"> <br /> <br /> <input type="submit" value="Zaloguj" /> </form> <br /> <a href="<?php echo $facebook->getLoginUrl() ?>" class="facebook_login"> <img src="http://static.ak.fbcdn.net/rsrc.php/zB6N8/hash/4li2k73z.gif"> </a> <?php endif; ?> </div> </body> </html>