如何让php标题打开同一页,但显示隐藏的div?

如何让php标题打开同一页,但显示隐藏的div?,php,Php,抱歉,如果以前有人问过这个问题,但我正在我的第一个网站上工作,并仍在学习。我试图添加一个验证码的联系形式采取从这里和使用PHP。 目前它正在工作,但现场为其工作提供的代码如下: <html> <body> <!-- the body tag is required or the CAPTCHA may not show on some browsers --> <!-- your HTML content -->

抱歉,如果以前有人问过这个问题,但我正在我的第一个网站上工作,并仍在学习。我试图添加一个验证码的联系形式采取从这里和使用PHP。 目前它正在工作,但现场为其工作提供的代码如下:

  <html>
    <body> <!-- the body tag is required or the CAPTCHA may not show on some browsers -->
      <!-- your HTML content -->

      <form method="post" action="verify.php">
        <?php
          require_once('recaptchalib.php');
          $publickey = "your_public_key"; // you got this from the signup page
          echo recaptcha_get_html($publickey);
        ?>
        <input type="submit" />
      </form>

      <!-- more of your HTML content -->
    </body>
  </html>

不同文件(服务器端)上的验证代码为:


我不确定你的“隐藏div”想法的目的是什么。难道你不只是给用户提供一个表单来输入详细信息和验证码,然后当他们提交时,你验证他们输入的所有数据吗?如果全部正常,则提交,否则显示错误并进行修改

如果是这样,您能否将验证码放在您的联系人页面上?
如果在与表单相同的文件中,当用户提交(PHP_SELF)时,您可以运行他们发送的整个表单数据,检查他们输入的内容(
is_numeric()
strlen()
,等等),然后还可以检查验证码。
在所有检查之后,如果有任何错误,告诉他们在哪里/什么,他们可以再试一次。否则,操作表单(向您发送电子邮件、存储在数据库中,等等)

然后,您可以在同一页上检查验证码:

if (!$resp->is_valid)
  {
    $CaptchaError = "error";
    // echo is invalid, reset form and make them try again
  }
else
  {
    $CaptchaError = "ok";
  }
如果出于任何原因,您需要将captcha代码保存在单独的文件中,那么只需发布或设置url VAR GET或SESSION,这样,当您使用标题重定向将它们发送回captcha表单所在的位置时,您就可以将数据与错误通知一起提供给他们。

虽然使用POST数据在一个页面上处理这些内容通常是最简单、最容易管理的方法。

在您的情况下,您可以尝试以下方法:

verify.php

if (!$resp->is_valid) {
    header("Location: contact.php?show-error"); // replace by your file name
    exit;
}
else {
    // Your code here to handle a successful verification
}
if(isset($_GET['show-error'])){
    echo "<div>
        The reCAPTCHA wasn't entered correctly. 
        Go back and try it again.
    </div>";
}
contact.php

if (!$resp->is_valid) {
    header("Location: contact.php?show-error"); // replace by your file name
    exit;
}
else {
    // Your code here to handle a successful verification
}
if(isset($_GET['show-error'])){
    echo "<div>
        The reCAPTCHA wasn't entered correctly. 
        Go back and try it again.
    </div>";
}
if(isset($\u GET['show-error'])){
回声“
没有正确输入reCAPTCHA。
回去再试一次。
";
}
或:


不要执行骰子,而是将消息放入名为$error的变量中。基于isset($error)为true或false,您可以在if语句内部的页面加载上使div可见/隐藏(如果验证码错误),您可以用以下内容替换错误消息:

if (!$resp->is_valid) {
header("Location: http://yoursite.com/contactformpage.php?error=captchaerror");
exit;
} else {
// Your code here to handle a successful verification
}
只需确保替换为您的联系人表单页面的实际URL,但保留所有其他内容(?error=captchaerror)

然后,在“联系人表单”页面上,您可以有另一个类似这样的if语句(将其放在希望出现错误消息的任何位置):

如果您有其他可能的“错误”情况,您可以更改url的“captchaerror”部分并重复上述步骤


如果您不熟悉PHP$\u GET变量,请查看此页面:

您想做什么?您可以使用普通文本输入,而不是使用captcha,显示样式为:无;然后在你的提交页面上运行一个if语句,说明如果这个文本字段不是空的,不要做任何其他事情继续。这仅适用于您不想使用验证码的情况
if(isset($_GET['error']) && $_GET['error'] == 'captchaerror') {
echo "The reCAPTCHA wasn't entered correctly. Please try again.";
}