Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Zasięg zmiennych a poprawność działania skryptu
tndek
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 25.12.2012

Ostrzeżenie: (0%)
-----


Mam taki kod -> http://wklej.org/id/958619/

Użytkownik przechodząc do mojej aplikacji na Facebooku zostaje przekierowany do tego pliku, który ma na celu pobranie jego podstawowych danych i wpisanie do specjalnej tabeli stworzonej w osobnej bazie danych. Wszystko działałoby prawidłowo, jednak gdy przechodzę do aplikacji, w tabeli powstaje nowy wiersz zupełnie pusty oprócz pola dotyczącego hasła (generowane jest losowo).
Na jednym forum dostałem poradę:
Cytat
"Poczytaj sobie o zasięgu zmiennych w PHP. W Twoim przypadku zmienna $me jest widoczna tylko wewnątrz funkcji getUser(). Zwróć ją sobie z tej funkcji przez 'return $me' i zmień wywołanie funkcji na '$me = getUser($facebook)'. Notabene, to samo dzieje się ze zmienną $facebook - musisz zmienić wywołanie funkcji 'connectToFacebook()' na '$facebook = connectToFacebook();'." "


Proponowane zmiany wprowadziłem a w kwestii zasięgu zmiennych dodałem polecenie "global" dla zmiennej $facebook i $me. Efektów nie było, do tabeli nadal trafia pusty wpis.
Nie wiem, czy coś robię źle czy ten kod jest niepoprawnie sformułowany, dlatego prosiłbym o Waszą pomoc. Z góry dziękuję. (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Mary$
post
Post #2





Grupa: Zarejestrowani
Postów: 113
Pomógł: 1
Dołączył: 19.02.2007
Skąd: 3city

Ostrzeżenie: (0%)
-----


a spróbuj zrobić to samo ze zmienną $facebook

Ogólnie Twoja metoda getUser jest tak skonstruowana, że jeżeli połączenie z facebookiem się nie powiodło, to nawet się o tym nie dowiesz (IMG:style_emoticons/default/wink.gif) zatem może w tym tkwi problem.

Skoro Twój kod wygląda tak:
  1. if ($facebook) {
  2. try {
  3. $uid = $facebook->getUser();
  4. $me = $facebook->api('/me');
  5. Facebook::$CURL_OPTS[CURLOPT_SSL_VERIFYPEER] = false; Facebook::$CURL_OPTS[CURLOPT_SSL_VERIFYHOST] = 2;
  6. } catch (FacebookApiException $e) {
  7. error_log($e);
  8. }
  9. }


To masz w zasadzie 2 opcje:
1. $facebook nie jest true, zatem połączenie nie powiodło się
2. w TRY coś idzie nie tak - sprawdź, czy w error logu nie masz o tym komunikatu
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 16.10.2025 - 04:06