Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Wyświetlanie reCAPTCHY w funkcji
Forum PHP.pl > Forum > Przedszkole
Szymoneks12
Otóż reCAPTCHĘ wyświetlam za pomocą funkcji:

  1.  
  2. // Funkcja wyświetlająca reCAPTCHE
  3. function wyswietlRecaptche()
  4.  
  5. {
  6. // Includowanie reCAPTCHY
  7. include 'recaptchalib.php';
  8. $publickey = "6Lfvc7oSAAAAAK4Go8nmx3wZ6Okh3Vzvi9-RuzJ0";
  9. echo recaptcha_get_html($publickey);
  10.  
  11. return '';
  12. }
  13.  
  14. // Funkcja identyfikująca reCAPTCHĘ (sprawdzająca, czy jest dobrze wypełniona)
  15. function identyfikujRecaptche()
  16.  
  17. {
  18.  
  19. require_once('recaptchalib.php');
  20.  
  21. $privatekey = "6Lfvc7oSAAAAAOpIp3KxYGtfjT-rmbpxDtsHxqzb";
  22. $resp = recaptcha_check_answer($privatekey,
  23. $_SERVER["REMOTE_ADDR"],
  24. $_POST["recaptcha_challenge_field"],
  25. $_POST["recaptcha_response_field"]);
  26.  
  27. return $resp;
  28. }
  29.  
  30. // Funkcja wyświetlająca prośbę o poprawne wypełnienie reCAPTCHY (jeżeli jest źle wypełniona)
  31. function wyswietlProsbeRecaptcha($resp)
  32.  
  33. {
  34. // Weryfikacja reCAPTCHA
  35. if (!$resp->is_valid)
  36. {
  37. $error = $resp->error;
  38. die ('<p class="ostrzezenie">Proszę wpisać poprawnie wyrazy z obrazka.</p>');
  39. }
  40.  
  41. return '';
  42. }
  43.  


Niestety jak wywołuję funkcje w poniższy sposób,
to zawsze wyświetla się monit o poprawne wypełnienie reCAPTCHY:

  1.  
  2. // Wyswietlanie reCAPTCHY
  3. wyswietlRecaptche();
  4.  
  5. // Sprawdzanie, czy reCAPTCHA jest dobrze wypełniona
  6. identyfikujRecaptche();
  7.  
  8. // Wyświetlanie prośby o poprawne wypełnienie reCAPTCHY (jeżeli jest źle wypełniona)
  9. wyswietlProsbeRecaptcha($resp);
  10.  


Co robię źle?
nospor
wyswietlProsbeRecaptcha($resp);
No przecież $resp nie jest widoczne. Poczytaj w manualu o zasięgu błędów.

Włącz sobie też wyświetlanie wszystkich błędów to nie będziesz po forach z takimi pierdółkami latał smile.gif
Tu masz o tym napisane:
Temat: Jak poprawnie zada pytanie
Szymoneks12
Jakieś konkretne hasło?

Szukałem pod: "zasięg błędów".
nospor
sorki, miało być "zasięg zmiennych" smile.gif
http://pl2.php.net/manual/pl/language.variables.scope.php

Ale temat co ci podałem wcześniej to też sobie obowiązkowo przyswój.
Szymoneks12
ale nadal nie rozumiem ;(
nospor
Ale co? Dałeś POMOGŁ to niby problem rozwiązany.
To rozwiązany czy nie? Czego nie rozumiesz?
skarabe.pl
Może chodzi po prostu o to, by napisać:
  1. $resp = identyfikujRecaptche();

Zamiast gołego identyfikujRecaptche()?
foxbond
Chodzi o to, że musisz dać

  1. // Wyswietlanie reCAPTCHY
  2. wyswietlRecaptche();
  3.  
  4. // Sprawdzanie, czy reCAPTCHA jest dobrze wypełniona
  5. [b]$resp =[/b] identyfikujRecaptche();
  6.  
  7. // Wyświetlanie prośby o poprawne wypełnienie reCAPTCHY (jeżeli jest źle wypełniona)
  8. wyswietlProsbeRecaptcha($resp);


Bo funkcje w zmiennej są widoczne tylko w obrębie jej samej, a poza tym $resp zwracasz przez return.


EDIT:

Tak będzie krótszy kod:
  1. wyswietlRecaptche();
  2. wyswietlProsbeRecaptcha(identyfikujRecaptche());

EDIT2:
o.O @skarabe.pl mnie wyprzedził
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.