当前位置: 首页 > 知识库问答 >
问题:

$_POST字段不转发到verify.php脚本reCAPTCHA

刁钧
2023-03-14

我有一个CSS样式的表单。当我保留CSS样式时,reCAPTCHA小部件不会在$\u POST数据中发送“reCAPTCHA_挑战_字段”和“reCAPTCHA_响应_字段”。他们导致我的$resp总是计算为false。

我发现,如果删除id=“contactform”属性,则reCAPTCHA工作正常。

这是我的表格代码:

<form action="PHP/contact2.php" method="post" id="contactform">
      <ol>
        <li>
          <label for="name">Name <span class="red">*</span></label>
          <input id="name" name="name" class="text" />
        </li>
        <li>
          <label for="email">email <span class="red">*</span></label>
          <input id="email" name="email" class="text" />
        </li>
        <li>
          <label for="company">Company</label>
          <input id="company" name="company" class="text" />
        </li>
        <li>
          <label for="subject">Subject</label>
          <input id="subject" name="subject" class="text" />
        </li>
        <li>
          <label for="message">Message <span class="red">*</span></label>
          <textarea id="message" name="message" rows="6" cols="50"></textarea>
        </li>

        <?php
          require_once("PHP/recaptchalib.php");
          $publickey = "Public key is here, I've removed it for security"; 
          echo recaptcha_get_html($publickey);
        ?>

        <li class="buttons">
          <input type="image" name="imageField" id="imageField" src="images/send.gif" class="send" />
          <div class="clr"></div>
        </li>
      </ol>
    </form>

我的CSS样式如下:

/********** contact form **********/
#contactform { margin:0; padding:5px 10px;}
#contactform * {
color:#000;
}
#contactform ol { margin:0; padding:0; list-style:none;}
#contactform li { margin:0; padding:0; background:none; border:none; display:block;     clear:both;}
#contactform li.buttons { margin:5px 0 5px 0;}
#contactform label {
margin:0;
width:110px;
display:block;
padding:10px 0;
color:#605f5f;
font: normal 12px Arial, Helvetica, sans-serif;
text-transform:capitalize;
float:left;
}
#listform label {
margin:0;
width:110px;
display:block;
padding:10px 0;
color:#605f5f;
font: normal 12px Arial, Helvetica, sans-serif;
text-transform:capitalize;
float:left;
}

#contactform label span { color:#F00;}
#contactform input.text { width:200px; border:1px solid #e8e8e8; margin:10px 0;     padding:5px 2px; height:16px; background:#fff; float:left;}
#contactform dropdown {
width:200px;
border:1px solid #e8e8e8;
margin:10px 0;
padding:5px 2px;
height:16px;
background:#fff;
float:left;

Q-RFL; AMPS; 
}


#contactform textarea { width:410px; border:1px solid #e8e8e8; margin:10px 0; padding:2px; background:#fff; float:left;}
#contactform li.buttons input { padding:3px 0 3px 110px; margin:0; border:0; color:#FFF; float:left;}

我的服务器端处理表单的php是quickstart指南中的cookie cutter。我只添加了一个简单的if语句来检查reCAPTCHA字段是否被传递。

这是我从服务器端得到的响应:

没有正确输入reCAPTCHA。回去再试一次。(reCAPTCHA表示:验证码sol不正确)

但reCAPTCHA输入正确。

有什么建议吗?

共有1个答案

范玄裳
2023-03-14

您应该在表单上添加一个提交按钮,并使用$_POST传递该值。

传递字段值以进行验证。php,您应该这样做

<form ....>
 .........
 .........
 <input type=submit id=x name=x value=Submit>
</form>

在php中,如下所示

 if(isset($_POST['x']) && $_POST['message']!="" ......){
   $value1=$_POST['message'];
   $value2=$_POST['subject'];
   ......................
  }
 类似资料:
  • 我一直试图从我的Android应用程序向一个URL发送一个POST请求,但我得到的只是一个空的$_POST。下面是我的代码,它运行在AsyncTask中。我在StackOverflow中查看了几个类似的问题,但没有一个能帮助我。 我在AndroidManifest.xml中拥有INTERNET权限。在这个相同的应用程序中,我做了另一个PHP脚本的请求,它按预期工作。 有什么想法吗?

  • 问题内容: 我正在尝试创建一个脚本字段,该脚本字段将计算两个时间戳之间的时间差,然后在该脚本字段上聚合一个。 我首先尝试: 在合计平均值下产生价值。 然后我尝试了: 生成了一条错误消息,内容为:“在映射中找不到[timedifference]的字段” 问题答案: 简单地将脚本移到聚合上怎么样?

  • 问题内容: 我熟悉一个事实,在Go中,接口定义功能而不是数据。您在接口中放置了一组方法,但是您无法指定实现该接口的任何内容所必需的任何字段。 例如: 现在我们可以使用该接口及其实现: 现在,您 不能 做的是这样的事情: 但是,在研究了接口和嵌入式结构之后,我发现了一种遵循以下方式的方法: 由于具有嵌入式结构,Bob拥有Person所拥有的一切。它还实现了PersonProvider接口,因此我们可

  • 问题内容: 我正在尝试将消息从后台页面发送到内容脚本,然后将消息从该内容脚本发送到注入的脚本。我已经尝试过了,但是没有用。 这是我的代码的样子。 manifest.json background.js content_script.js injection.js 从第一部分背景-> content_script开始,消息发送不起作用。我的代码有什么问题吗? 问题答案: 由于内容脚本的注入方式,您的

  • 问题内容: 我目前有类似的东西: 但是,myfield的值为“ alpha 1.0”,“ alpha 2.0”,“ beta 1.0”。现在,我只想聚合值“ alpha”,“ beta”。我怎么做?我试过了: 但我想这里没有拆分功能。欢迎任何建议! 问题答案: 我设法通过粘贴在问题中的链接来完成此任务:

  • item_ids是一个传入的数组,它本质上是@[1234,1235],只是几个数字。接收此请求的web服务没有为$_POST设置任何内容,但是我发送的JSON确实显示在$HTTP_RAW_POST_DATA中。这是为什么?是我的请求做错了什么,还是更有可能是服务器端出现了问题? 提前感谢!