Autor | Zpráva | ||
---|---|---|---|
Tiffany Profil |
Ahoj, Prosím o radu.....
zkouším dát recaptcha do formuláře...ale pokud je prázdná......tak to nehlídá...pokud tam napíšu, tak ano.... <?php require_once('recaptchalib.php'); // Get a key from https://www.google.com/recaptcha/admin/create $publickey = ""; $privatekey = ""; # the response from reCAPTCHA $resp = null; # the error code from reCAPTCHA, if any $error = null; function clear_user_input($hodnota) { if (get_magic_quotes_gpc()) $hodnota=stripslashes($hodnota); $hodnota= str_replace( "\n", '', trim($hodnota)); $hodnota= str_replace( "\r", '', $hodnota); return $hodnota; } @$check_data = $_REQUEST['check_data']; if(isset($check_data)) { $jmeno = $_REQUEST['jmeno']; $prijmeni = $_REQUEST['prijmeni']; $email = $_REQUEST['email']; $telefon = $_REQUEST['telefon']; $zprava = $_REQUEST['zprava']; if($jmeno=='' || $prijmeni=='' || $email=='' || $zprava=='' || $telefon==''){ $data_error = true; } if($jmeno=='') { $no_jmeno = true; } if($prijmeni=='') { $no_prijmeni = true; } if($telefon=='') { $no_telefon = true; } if($email=='') { $no_email = true; } if(preg_match("/^([a-zA-Z0-9])+([a-zA-Z0-9\._-]) *@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/", $email)) { $valid_email = true; } if($zprava =='') { $no_zprava = true; } # was there a reCAPTCHA response? if ($_POST["recaptcha_response_field"]) { $resp = recaptcha_check_answer ($privatekey, $_SERVER["REMOTE_ADDR"], $_POST["recaptcha_challenge_field"], $_POST["recaptcha_response_field"]); if ($resp->is_valid) { } else { # set the error code so that we can display it $soucet_error = true; } } if(!$data_error && !$soucet_error){ //sestavit telo zpravy k odeslani $_telo = "Zde jsou data, která byla poslána z kontaktního formuláře:\n"; $_telo .= "Jméno: ".$jmeno."\n"; $_telo .= "Příjmení: ".$prijmeni."\n"; $_telo .= "Email: ".$email."\n"; $_telo .= "Telefon: ".$telefon."\n"; $_telo .= "Message: ".$zprava."\n"; $_email = clear_user_input($email); $_jmeno = clear_user_input($spolecnost); $_predmet = 'Zpráva ze snadnecesty.eu '; $headers = 'From:' .$email. "\r\n"; //Posílá mi e-mail spolu s elementy vytvořenými výše mb_language('Neutral'); mb_internal_encoding("UTF-8"); mb_http_input("UTF-8"); mb_http_output("UTF-8"); mb_send_mail ("mail@mail.cz", $_predmet, $_telo, $headers); $data_sent = true; $jmeno = ''; $prijmeni = ''; $zprava = ''; $email = ''; $telefon = ''; } } ?> <tr id="nodisplay"> <td><input type="hidden" name="check_data" value="T"/></td> <table> </tr> <tr class="nadpis"> <td>Kontrolní součet</td> </tr> <tr id="soucet"> <td colspan="3" nowrap="nowrap"><?php echo recaptcha_get_html($publickey, $soucet_error); ?> </td> </tr> <tr> <td><input tabindex="7" type="submit" value="" /></td> </tr> </table> <?php if(@$data_sent){ echo '<div class="uspech_hlaska"><font color="green">Zpráva byla odeslána :) Děkujeme.</font></div>'; }else{ @$error_message = ''; if(@$data_error) { echo '<div class="chybova_hlaska"><font color="red">Vyplňte, prosím, všechny údaje!</font></div>'; } if(@$soucet_error) { echo '<div class="chybova_hlaska"><font color="red">Vyplňte, prosím, kontrolní součet!</font></div>'; } } ?> |
||
Virtus Profil |
Zdravím,
problém je v podmínce: if ($_POST["recaptcha_response_field"]) { , respektive si myslím, že je zde úplně zbytečná, každopádně pro vysvětlení, pokud zůstane captcha nevyplněná, tato podmínka se vyhodnotí jako FALSE, pokud podmínku potřebuješ z nějakého důvodu zachovat, tak tam přídej něco takového:
<?php # was there a reCAPTCHA response? if ($_POST["recaptcha_response_field"]) { ... } else { $soucet_error = true; } edit: a nebo lépe ještě možná takhle, pak zde nemusí být else a logika se narozdíl od předchozího příkladu nezmění <?php # was there a reCAPTCHA response? if (isset($_POST["recaptcha_response_field"])) { } |
||
Tiffany Profil |
#3 · Zasláno: 30. 7. 2014, 21:57:59
úžasný.......funguje :) děkuji moc!!!
ta podmínka byla z mé strany pochopena přesně obráceně :) |
||
Časová prodleva: 11 let
|
0