Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Recaptcha sprawdzanie pola zaznaczenia
Sebastian003
post
Post #1





Grupa: Zarejestrowani
Postów: 282
Pomógł: 2
Dołączył: 22.03.2007

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


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. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
patwoj98
post
Post #2





Grupa: Zarejestrowani
Postów: 218
Pomógł: 16
Dołączył: 6.06.2014
Skąd: Warszawa

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


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.
Go to the top of the page
+Quote Post
Sebastian003
post
Post #3





Grupa: Zarejestrowani
Postów: 282
Pomógł: 2
Dołączył: 22.03.2007

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


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 ?
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: 2.10.2025 - 21:24