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:
  1. <?php
  2.  
  3. // załączenie biblioteki facebook.php
  4. require 'biblioteka/facebook.php';
  5.  
  6.  
  7. /**
  8.  * Połączenie z Facebook
  9.  * */
  10. function connectToFacebook()
  11. {
  12. // utworzenie obiektu $facebook
  13. $facebook = new Facebook(array(
  14. 'appId' => 'XXX', // application id
  15. 'secret' => 'XXXXXX', // secret
  16. 'cookie' => true,
  17. ));
  18.  
  19. return $facebook;
  20. }
  21.  
  22.  
  23. /**
  24.  * pobranie danych użytkownika
  25.  * */
  26. function getUser($facebook)
  27. {
  28. // pobranie sesji
  29. $user = $facebook->getUser();
  30.  
  31. // utworzenie pustego obiektu użytkownika
  32. $me = null;
  33.  
  34. // jeżeli użytkownik jest zalogowany na Facebooku
  35. // do zmiennej $uid zostanie zapisany identyfikator użytkownika
  36. // do zmiennej $me zostaną zapisane dane użytkownika
  37. if ($user) {
  38. try {
  39. $uid = $facebook->getUser();
  40. $me = $facebook->api('/me');
  41. } catch (FacebookApiException $e) {
  42. error_log($e);
  43. }
  44. }
  45.  
  46. return $me;
  47. }
  48.  
  49. /**
  50.  * rejestracja nowego użytkownika
  51.  * */
  52. function registerNewUser($me)
  53. {
  54. require 'db_conn.php';
  55.  
  56. $insert = "INSERT INTO users (imie, nazwisko, email, haslo, fb_id) VALUES (" .
  57. "'" . $me['first_name'] . "', " .
  58. "'" . $me['last_name'] . "', " .
  59. "'" . sha1(time() ) . "', " . // generowanie losowego hasła
  60. "'" . $me['id'] . "')";
  61.  
  62. $result = $conn->query($insert);
  63.  
  64. $affected = $conn->affected_rows;
  65. $conn->close();
  66.  
  67. if ($affected == 1)
  68. return true;
  69. else
  70. return false;
  71. }
  72.  
  73.  
  74. /**
  75.  * pobranie adresu url
  76.  * */
  77. function getUrl($me)
  78. {
  79. // url do wylogowania/zalogowania użytkownika z Facebooka
  80. if ($me) {
  81. $linkUrl = $facebook->getLogoutUrl();
  82. } else {
  83. $linkUrl = $facebook->getLoginUrl();
  84. }
  85.  
  86. return $linkUrl;
  87. }
  88. ?>


i odpowiednio to co widzi użytkownik:
  1. <?php
  2. session_start();
  3. require 'facebook_connect.php';
  4.  
  5. // pobranie danych z Facebooka
  6. $facebook = connectToFacebook();
  7. $me = getUser($facebook);
  8.  
  9. // w przypadku otrzymania danych z Facebooka nestępuje automatyczne przekierowanie do skryptu logującego użytkownika
  10. // aby zapewnić możliwość wylogowania z facebooka z dowolnego miejsca w serwisie zapiywany będzie do sesji wygenerowany link
  11. if ($me) {
  12. $_SESSION['logoutUrl'] = $facebook->getLogoutUrl();
  13. header('Location: zaloguj.php');
  14. exit;
  15. }
  16. ?>
  17.  
  18. <!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">
  19. <head>
  20. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  21. <meta http-equiv="Content-Language" content="pl" />
  22. <meta name="AUTHOR" content="Mikołaj Gnaciński@www.weeby.pl" />
  23. <link rel="stylesheet" type="text/css" href="style.css" />
  24.  
  25. <title>Logowanie za pomocą Facebook Connect</title>
  26. </head>
  27. <body>
  28. <div id="header">
  29. <h1>Logowanie</h1>
  30. </div>
  31.  
  32. <div id="content">
  33. <?php
  34. // użytkownik zalogowany nie może się ponownie logować
  35. if ($SESSION['id'] != null):
  36. ?>
  37. <h2>Jesteś już zalogowany</h2>
  38. <?php
  39. // wyświetlenie formularza logowania
  40. else:
  41.  
  42. // w przypadku błędnego logowania wyświetlenie komunikatu
  43. if ($_SESSION['isLogin'] == 2) {
  44. echo '<h2>Błędny login lub hasło!</h2>';
  45. $_SESSION['isLogin'] = 0;
  46. }
  47. //
  48. else if ($_SESSION['isLogin'] == 3) {
  49. echo '<h2>Nieudana rejestracja nowego użytkownika!</h2>';
  50. $_SESSION['isLogin'] = 0;
  51. }
  52. ?>
  53. <form enctype="application/x-www-form-urlencoded" method="post" action="zaloguj.php">
  54. E-mail:<br /><input type="text" name="email" />
  55. <br />
  56. Hasło: <br /><input type="password" name="haslo" />
  57. <br />
  58. <input type="submit" value="Zaloguj" />
  59. </form>
  60.  
  61. <br />
  62. <a href="<?php echo $facebook->getLoginUrl() ?>" class="facebook_login">
  63. <img src="http://static.ak.fbcdn.net/rsrc.php/zB6N8/hash/4li2k73z.gif">
  64. </a>
  65. <?php endif; ?>
  66. </div>
  67. </body>
  68. </html>