简体   繁体   中英

how to give required in google captcha

My PHP:

include_once ('db.php');

$capt_err = '';
$error = 0;

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $name = $_POST['name'];
    $email = $_POST['email'];
    $phone = $_POST['phone'];
    $message = $_POST['message'];
    $captcha = $_POST['g-recaptcha-response'];
    if (!$captcha) {
        echo '<script language="javascript">';
        echo 'alert("please check the captcha!");';

        // echo 'window.location.href="#mymodal";';

        echo '</script>';
        exit();
    }
    else {
        $response = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=6LcoHioTAAAAAHvJ0FIRLC-VWVmpBSs_-7igEkXh&response=" . $captcha . "&remoteip=" . $_SERVER['REMOTE_ADDR']);
    }

    if ($response . success == false) {
        echo '<h2>You are spammer ! Get the @$%K out</h2>';
    }
    else {
        $result = mysqli_query($mysqli, "INSERT INTO vibodha_feedback (`id`,`name`,`email`,`phone`,`message`,`date`) VALUES('','$name','$email','$phone','$message',now())");
        echo "<script>" . "alert('Your Message has been sucessfully sent.')" . "</script>";
    }
}

// header('location:testimonials.php');

My HTML:

<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>"  method="post">
    <fieldset>
        <label for="name">Name:</label>
        <input type="text" id="name" name="name" required>
        <label for="mail">Email:</label>    
        <input type="email" id="email" name="email" required>
        <label for="phone">Phone:</label>
        <input type="number" id="phone" name="phone" required>
        <label for="message">Message:</label>   
        <textarea id="message" name="message" required></textarea>
        <div class="g-recaptcha" data-sitekey="6LewHioTAAAAANGO-VChqdjsoZARTVOxsrgPW6T8"></div>
    </fieldset>
    <button type="submit">Send!</button>
</form>

My JavaScript: the script is default for g-recapcha(google),the google intergrate only recaptcha option..not to give required option.

i wrote validation in php code.the captcha is empty alert will come(refer php code)

the above three parts in my code..i give required in div class,,,the div not taken,then how to give required in captcha.

Try something like this

 <input type="text" class="inputcontact" id="captcha_contact" placeholder="Cod securitate" name="captcha" onchange="isEmpty('captcha_contact', 'hiba-captcha_contact')">
                <div id="error-captcha_contact"><span style="font-size: 8px;"></span></div>

JS file:

        jQuery(document).ready(function () {
            jQuery('#contact_send').click(function () {
var minden_ok = true;
             if (minden_ok == true) {
                    minden_ok = isEmpty('captcha_contact', 'error-captcha_contact');
                }
 if (minden_ok == true) {
    //your code here
  }
        });



function isEmpty(ID, errorID) {
var value= jQuery('#' + ID).val();
if (value.length > 0) {
    jQuery("#" + errorID).hide("slow");
    jQuery("#" + ID).css("border-color", "");
    return true;
} else {
    jQuery("#" + errorID + " span:first").text("Please fill !");
    jQuery("#" + ID).css("border-color", "red");
    jQuery("#" + errorID).show("slow");
    jQuery("#" + ID).focus();
    return false;
}

You can get it by $_POST['g-recaptcha-response'];

like

include_once ('db.php');

$capt_err = '';
$error = 0;

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $name = $_POST['name'];
    $email = $_POST['email'];
    $phone = $_POST['phone'];
    $message = $_POST['message'];
       if($_POST['g-recaptcha-response']=='') 
       {
       echo '<script language="javascript">';
        echo 'alert("please check the captcha!");';

        // echo 'window.location.href="#mymodal";';

        echo '</script>';
        exit();
       }

    else {
        $response = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=6LcoHioTAAAAAHvJ0FIRLC-VWVmpBSs_-7igEkXh&response=" . $captcha . "&remoteip=" . $_SERVER['REMOTE_ADDR']);
    }

    if ($response . success == false) {
        echo '<h2>You are spammer ! Get the @$%K out</h2>';
    }
    else {
        $result = mysqli_query($mysqli, "INSERT INTO vibodha_feedback (`id`,`name`,`email`,`phone`,`message`,`date`) VALUES('','$name','$email','$phone','$message',now())");
        echo "<script>" . "alert('Your Message has been sucessfully sent.')" . "</script>";
    }
}

// header('location:testimonials.php');

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM