如何停止php指向空白页面,并使用html发出通知

如何停止php指向空白页面,并使用html发出通知,php,html,Php,Html,我的html中有一个联系人表单。用户单击submit后,它会将他们重定向到一个空白页面,这是用于recaptcha检查的php文档。我如何使它保持在html页面上(这样,它就不会进入空白页面),并且只显示一条消息,上面写着“message sent”,或者如果recaptcha失败,“recaptcha failed.请重试” HTML 名称 电子邮件 消息 PHP 您可以在PHP脚本中包含html代码 根据您的代码: <?php if(isset($_POST['su

我的html中有一个联系人表单。用户单击submit后,它会将他们重定向到一个空白页面,这是用于recaptcha检查的php文档。我如何使它保持在html页面上(这样,它就不会进入空白页面),并且只显示一条消息,上面写着“message sent”,或者如果recaptcha失败,“recaptcha failed.请重试”

HTML


名称


电子邮件


消息




PHP


您可以在PHP脚本中包含html代码

根据您的代码:

    <?php
if(isset($_POST['submit']) && !empty($_POST['submit'])):
if(isset($_POST['g-recaptcha-response']) && !empty($_POST['g-recaptcha-           response'])):
    //your site secret key
    $secret = '';
    //get verify response data
    $verifyResponse = file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret='.$secret.'&response='.$_POST['g-recaptcha-response']);
    $responseData = json_decode($verifyResponse);
    if($responseData->success):
        //contact form submission code
        $name = !empty($_POST['name'])?$_POST['name']:'';
        $email = !empty($_POST['email'])?$_POST['email']:'';
        $message = !empty($_POST['message'])?$_POST['message']:'';

        $to = '';
        $subject = 'New contact form have been submitted';
        $htmlContent = "
            <h1>Contact request details</h1>
            <p><b>Name: </b>".$name."</p>
            <p><b>Email: </b>".$email."</p>
            <p><b>Message: </b>".$message."</p>
        ";
        // Always set content-type when sending HTML email
        $headers = "MIME-Version: 1.0" . "\r\n";
        $headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
        // More headers
        $headers .= 'From:'.$name.' <'.$email.'>' . "\r\n";
        //send email
        @mail($to,$subject,$htmlContent,$headers);

        $succMsg = 'Your contact request have submitted successfully.';

    else:
        $errMsg = 'Robot verification failed, please try again.';
    endif;
else:
    $errMsg = 'Please click on the reCAPTCHA box.';
endif;
else:
?>
<form name="form" method="post" class="contact" action="form.php">
        <label for="name">Name</label><br>
        <input class="text" name="name" type="text" />
        <br><br>

        <label for="email">Email</label><br>
        <input class="text" name="email" type="text" />
        <br><br>

        <label for="message">Message</label><br>
        <textarea class="message" name="message"></textarea>
        <br><br>
      <div class="g-recaptcha" data-sitekey="6LcFgRAUAAAAAEuBal0o_QvjBH-ZiGTKHJ25ZwaF"></div>
        <br><br>

        <input class="submit " name="submit" type="submit"  value="send"/>


    </form>
<?php
$errMsg = '';
$succMsg = '';
endif;

?>

名称


电子邮件


消息





别忘了包括剩下的html代码、样式表链接等。

A:将所有内容放在同一个文件中,或者使用ajaxI,我不明白。请您澄清一下,OP希望在用户不离开页面的情况下处理对recaptha服务的请求。哦,好的。你想让我给你剩下的html吗?嗯,这是你的代码。在PHP方面,你需要做的唯一的事情就是显示你的成功/错误消息,但是如果我使用ECHO,我想它会显示空白页面上的消息。我应该怎么做才能在html文档上显示消息?你不能。html页面是静态的,不能动态显示消息。事实上不是这样的。正如Fred所说,一个解决方案是使用ajax调用,但现在可能有点太难了。您可以将整个html代码放在php脚本上,这不是问题。只需在您想要编写php代码而不是html时使用。希望有帮助!所以,在html中。而不是链接到php页面。在action元素内部。我把php代码放在哪里?
<?php
if(isset($_POST['submit']) && !empty($_POST['submit'])):
if(isset($_POST['g-recaptcha-response']) && !empty($_POST['g-recaptcha-           response'])):
    //your site secret key
    $secret = '';
    //get verify response data
    $verifyResponse = file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret='.$secret.'&response='.$_POST['g-recaptcha-response']);
    $responseData = json_decode($verifyResponse);
    if($responseData->success):
        //contact form submission code
        $name = !empty($_POST['name'])?$_POST['name']:'';
        $email = !empty($_POST['email'])?$_POST['email']:'';
        $message = !empty($_POST['message'])?$_POST['message']:'';

        $to = '';
        $subject = 'New contact form have been submitted';
        $htmlContent = "
            <h1>Contact request details</h1>
            <p><b>Name: </b>".$name."</p>
            <p><b>Email: </b>".$email."</p>
            <p><b>Message: </b>".$message."</p>
        ";
        // Always set content-type when sending HTML email
        $headers = "MIME-Version: 1.0" . "\r\n";
        $headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
        // More headers
        $headers .= 'From:'.$name.' <'.$email.'>' . "\r\n";
        //send email
        @mail($to,$subject,$htmlContent,$headers);

        $succMsg = 'Your contact request have submitted successfully.';

    else:
        $errMsg = 'Robot verification failed, please try again.';
    endif;
else:
    $errMsg = 'Please click on the reCAPTCHA box.';
endif;
else:
$errMsg = '';
$succMsg = '';
endif;

?>
    <?php
if(isset($_POST['submit']) && !empty($_POST['submit'])):
if(isset($_POST['g-recaptcha-response']) && !empty($_POST['g-recaptcha-           response'])):
    //your site secret key
    $secret = '';
    //get verify response data
    $verifyResponse = file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret='.$secret.'&response='.$_POST['g-recaptcha-response']);
    $responseData = json_decode($verifyResponse);
    if($responseData->success):
        //contact form submission code
        $name = !empty($_POST['name'])?$_POST['name']:'';
        $email = !empty($_POST['email'])?$_POST['email']:'';
        $message = !empty($_POST['message'])?$_POST['message']:'';

        $to = '';
        $subject = 'New contact form have been submitted';
        $htmlContent = "
            <h1>Contact request details</h1>
            <p><b>Name: </b>".$name."</p>
            <p><b>Email: </b>".$email."</p>
            <p><b>Message: </b>".$message."</p>
        ";
        // Always set content-type when sending HTML email
        $headers = "MIME-Version: 1.0" . "\r\n";
        $headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
        // More headers
        $headers .= 'From:'.$name.' <'.$email.'>' . "\r\n";
        //send email
        @mail($to,$subject,$htmlContent,$headers);

        $succMsg = 'Your contact request have submitted successfully.';

    else:
        $errMsg = 'Robot verification failed, please try again.';
    endif;
else:
    $errMsg = 'Please click on the reCAPTCHA box.';
endif;
else:
?>
<form name="form" method="post" class="contact" action="form.php">
        <label for="name">Name</label><br>
        <input class="text" name="name" type="text" />
        <br><br>

        <label for="email">Email</label><br>
        <input class="text" name="email" type="text" />
        <br><br>

        <label for="message">Message</label><br>
        <textarea class="message" name="message"></textarea>
        <br><br>
      <div class="g-recaptcha" data-sitekey="6LcFgRAUAAAAAEuBal0o_QvjBH-ZiGTKHJ25ZwaF"></div>
        <br><br>

        <input class="submit " name="submit" type="submit"  value="send"/>


    </form>
<?php
$errMsg = '';
$succMsg = '';
endif;

?>