Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Recaptcha sprawdzanie pola zaznaczenia
Forum PHP.pl > Forum > Przedszkole
Sebastian003
Witam, posiadam prosty formularz... wdrożyłem recaptcha lecz formularz wysyla wiadomosci nie zwracajac uwagi czy zaznacze czy nie... Jak w miare prosty sposob zrobic aby to sprawdzał. Dodam ze nie znam dobrze php. Prosze o pomoc.

  1. <form class="tests" action="send.php" method="post">
  2. <div name="c" class="g-recaptcha" data-sitekey="XXX"></div>
  3. <div>
  4. <label for="name_Req">Imię i nazwisko: <strong>*</strong></label>
  5. <input id="name_Req" type="text" title="Required! Please enter your name" name="imienazwisko">
  6. </div>
  7. <div>
  8. <label for="name_Req">Telefon lub e-mail: <strong>*</strong></label>
  9. <input id="name_Req" type="text" title="Required! Please enter your name" name="twojemail">
  10. </div>
  11. <div>
  12. <textarea id="message_Req" title="Required! Please enter your message" name="tresc"></textarea>
  13. </div>
  14. <div>
  15. <input class="button" type="submit" name="bb" value="Wyślij">
  16. </div>
  17. </form>


  1. <h2>Formularz wysłany</h2>
  2. <?php
  3. $adres="biuro@xxx.pl";
  4. $temat="Formularz kontakt";
  5. $tresc="Imie/Nazwisko: ".$_POST["imienazwisko"]." |::| E-mail: ".$_POST["twojemail"]." |::| Wiadomosc: ".$_POST["tresc"].".";
  6.  
  7. if(function_exists('mail'))
  8. {
  9. mail($adres, $temat, $tresc);
  10. echo"<h1>Dziękujemy za wypełnienie formularza.<h1>";
  11. echo"<p>Skontaktujemy się z Państwem tak szybko, jak tylko będzie to możliwe.<br/> Za kilka sekund zostaną Państwo przekierowani na stronę główną.</p>";
  12. }
  13. else
  14. {
  15. echo"Niestety funkcja mail() jest wyłączona na tym serwerze. Nie mogę wysłać danych z formularza.";
  16. }
  17. ?>
Sebastian003
Co znalesc sie w recaptchalib.php ? nie rozumiem tego... mozna troszke latwiej wyjasnic ?

wie ktos?
kapslokk
Link który Ci wysłałem był chyba do starej wersji, ale na samej górze masz link do nowej. Masz przykłady kodu, kombinuj.


Cytat
Co znalesc sie w recaptchalib.php ? nie rozumiem tego... mozna troszke latwiej wyjasnic ?

No ja też nie rozumiem, pytania.
patwoj98
A sprawdzasz po stronie serwera, czy Captcha kliknięta?
Sebastian003
nie... mowie ze jestem zielony ? moze ktos by mnie jakos naprowadził ?
patwoj98
Masz 2 keye od Google'a.
1. - site-key który wstawiasz do Twojego diva. Nie masz co go ukrywać tu na forum bo on i tak jest widoczny po stronie WWW (wystarczy wejść w kod strony).
2. - secret key - jak sama nazwa wskazuje jest dość ważny bo sekretny.
To co jest dla Ciebie ważne to zmienna, którą przekazujesz do serwera. Jest to
  1. $_POST['g-recaptcha-response']


Teraz masz kod:
  1. $captcha = $_POST['g-recaptcha-response'];
  2. $secretKey = "XXX"; // tu musisz wprowadzić Twój sekretny kod
  3. $ip = $_SERVER['REMOTE_ADDR']; //ip jest również wysyłane przez google
  4. $response=file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=".$secretKey."&response=".$captcha."&remoteip=".$ip); //pobieramy dane od google'a
  5. $responseKeys = json_decode($response,true); // dane są w formacie json, więc trzeba je zdekodować
  6. if(intval($responseKeys["success"]) !== 1) { //jeżęli się udało
  7. //true
  8. } else {
  9. //false
  10. }


Mam nadzieję, że pomogłem.
Sebastian003
Cytat(patwoj98 @ 14.04.2016, 22:08:56 ) *
Masz 2 keye od Google'a.
1. - site-key który wstawiasz do Twojego diva. Nie masz co go ukrywać tu na forum bo on i tak jest widoczny po stronie WWW (wystarczy wejść w kod strony).
2. - secret key - jak sama nazwa wskazuje jest dość ważny bo sekretny.
To co jest dla Ciebie ważne to zmienna, którą przekazujesz do serwera. Jest to
  1. $_POST['g-recaptcha-response']


Teraz masz kod:
  1. $captcha = $_POST['g-recaptcha-response'];
  2. $secretKey = "XXX"; // tu musisz wprowadzić Twój sekretny kod
  3. $ip = $_SERVER['REMOTE_ADDR']; //ip jest również wysyłane przez google
  4. $response=file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=".$secretKey."&response=".$captcha."&remoteip=".$ip); //pobieramy dane od google'a
  5. $responseKeys = json_decode($response,true); // dane są w formacie json, więc trzeba je zdekodować
  6. if(intval($responseKeys["success"]) !== 1) { //jeżęli się udało
  7. //true
  8. } else {
  9. //false
  10. }


Mam nadzieję, że pomogłem.



Nadal mi wysyla jak nie zaznacze ?
patwoj98
No wysłać wyśle, ale to Twoje zadanie, aby sprawdzić w odpowiednim miejscu czy user kliknął. Masz nawet ifa do tego już. Najlepiej wyślij i sprawdź która część ifa po zaznaczeniu się wyświetla, a która bez (echo)
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.