• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Sprawdzanie poprawnsoci captacha

Object Storage Arubacloud
0 głosów
124 wizyt
pytanie zadane 28 grudnia 2017 w PHP przez Grzegorz Szwarc Początkujący (320 p.)

Mam normalny formularz na kilka pół, dane są przekazywane metodą post do phpmailer, co jest zdefiniowane w własności action.I jak zrobic pierw żeby sprawdzało czy captach jest wypełniony poprawnie. Captach wyswietla mi sie na stronie, i te podstawy mam ogarnięte. Bazuje na czymś takim

<?if (isset($_POST['submit'])) {
    $secret = '6LfRORcU***********************1Ei0FdA';
    $response = $_POST['g-recaptcha-response'];
    $remoteip = $_SERVER['REMOTE_ADDR'];
    
    $url = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=$secret&response=$response&remoteip=$remoteip");
    $result = json_decode($url, TRUE);
    if ($result['success'] == 1) {
		$dalej="phpmailer.php";
		header("Location: $dalej");
    }else{
		$dalej="index.php?page?ercap";
		header("Location: $dalej");
    }
	}?>

I nwm co to jest nie tak albo gdzie wstawić, zeby po nacisniecu guzika wyslij na formularzu srpawdzalo tego captacha.

1 odpowiedź

0 głosów
odpowiedź 28 grudnia 2017 przez Paweł Antyporowicz Stary wyjadacz (11,470 p.)

Jest prawie okej, podczas wysyłania formularza, odbierasz postem dane z captchy z formularza i wysyłasz zapytanie do API Captchy Google i Ci zwraca wynik czy captcha została prawidłowo zatwierdzona.

Musisz zmienić warunek w instrukcji warunkowej, z
 

if ($result['success'] == 1)

 na

if ($result['success']  ==  true lub false)

ponieważ API Google zwraca wartość SUCCESS jako typ logiczny. Wtedy warunek powinien się spełniać.

Możesz także użyć funkcji var_dump i podejrzeć co jest w środku odpowiedzi z API googla

komentarz 28 grudnia 2017 przez Grzegorz Szwarc Początkujący (320 p.)
edycja 28 grudnia 2017 przez Grzegorz Szwarc

Nie smiga, byc może zle sprecyzowałem.

<form method="POST" action="<?if (isset($_POST['submit'])) {
    $secret = '6LfDkj4U********I3NpW7KJqElz4KGotbcWsJ';
    $response = $_POST['g-recaptcha-response'];
    $remoteip = $_SERVER['REMOTE_ADDR'];
    
    $url = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=$secret&response=$response&remoteip=$remoteip");
    $result = json_decode($url, TRUE);
    if ($result['success'] == true) {
		$dalej="phpmailer.php";
		header("Location: $dalej");
    }else{
		$dalej="index.php?page=ercap";
		header("Location: $dalej");
    }
	}?>">
	<center><hr width="800" size="5" color="#cc3300"></center>
		<center><span class="aa">Dane do sprzedaży</span></center><br>
	<table width= 900px align="center">
	<tr><th colspan="5"><form><br><span class="a1">E-mail przez który będziemy się kontaktować:</span><br>
		<input type="email" name="xekontakt" size="80" class="sel"><br>
	
	<center><div class="g-recaptcha" data-sitekey="6LfDkj4UAAAAAH3UdA2mLf4ay-RmBPpFDiAUQt67"></div></center>
	<tr><th colspan="5"><br><button class="sub" type="submit">Wyślij!</button></span><br><br>

Po kliknięcu przycisku wyślij zostaje mi na tej stornie(znaczy odswieża ale na strone z formularzem, czyli to samo), nie idzie ani na ercap ktory pokazuje ze zle wypelniono captache ani do phpmailer zeby wyslac te dane.

Podobne pytania

0 głosów
1 odpowiedź 111 wizyt
0 głosów
1 odpowiedź 581 wizyt
pytanie zadane 14 stycznia 2023 w PHP przez kingkushlee Gaduła (3,960 p.)
0 głosów
0 odpowiedzi 207 wizyt
pytanie zadane 8 lipca 2022 w PHP przez Vulfila Nowicjusz (120 p.)

92,579 zapytań

141,432 odpowiedzi

319,662 komentarzy

61,963 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...