p.s:我放弃了这个,因为我没有找到解决方案并实现了我自己的 php 验证码,这很有用:) - http://www.the-art-of-web.com/php/captcha/
我花了很多时间试图解决这个问题,但我似乎无法弄清楚。我在网上阅读了很多不同的教程和问题。
请记住,我的 PHP 水平相当基础。
我似乎无法在我的 php 文件中获取“g-recaptcha-response”$_POST 值。
我已经总结了下面需要的重要代码......
在头部标签之前
<?php
session_start(); // start php session
// Setup session variables to save the form data
if( isset($_SESSION['contact_form_values']) ){
extract( $_SESSION['contact_form_values'] );
}
include('contactengine.php');
?>
在头部标签
<script src='https://www.google.com/recaptcha/api.js'></script><!-- reCAPTCHA form -->
Form标签之间 Action=""以便它发布到包含 contactengine.php 文件的自身,以便它仅在用户单击提交按钮时运行?
<form class="contactform" method="POST" action="">
<div class="g-recaptcha" data-sitekey="6Lc92gkTAAAAAFKjZEOlY0cg9G8ubmlVoC13Xf3T"></div>
在此之间
if($_SERVER["REQUEST_METHOD"] == "POST")
我有
if( isset( $_POST['g-recaptcha-response'] ) ){
$captchaResponse = $_POST['g-recaptcha-response'];
}
现在这是变量 $captchaResponse 没有被填充的地方,因为我像这样输出它的值:
if( !$captchaResponse ){ // check the POST recaptcha response value
$resultMsg = 'Please check the captcha form. - '.$captchaResponse;
}
因此,我在 $resultMsg 字符串中看不到响应代码的输出。
我唯一能想到的就是将 contactengine.php 文件包含在 contact.php 的开头。并将 Action 设为 =""。但这是教程指导我做的。所以也许不是...
我用了http://www.9lessons.info/2014/12/google-new-recaptcha-using-php-are-you.html作为向导。
非常感谢!
最佳答案
你快到了!您只需要查询 Google 的 API。
if (isset($_POST['g-recaptcha-response'])) {
$captcha = $_POST['g-recaptcha-response'];
}
if (!$captcha) {
// Captcha wasn't checked, do something...
exit;
}
$response = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=SECRETKEYGOESHERE&response=".$captcha."&remoteip=".$_SERVER['REMOTE_ADDR']);
if ($response.success == false) {
// Captcha failed! Do something!
} else {
// Captcha is valid! Do something else!
}
将 SECRETKEYGOESHERE 替换为您的实际 key ,一切就绪!
关于php - Google reCAPTCHA g-recaptcha-response 在 PHP 中没有值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31452418/
在我的系统中,我已经定义了STI。Dog继承自Animal,在animals表中有一个type列,其值为"Dog"。现在我想让SpecialDog继承自dog,只是为了在某些特殊情况下稍微修改一下行为。数据还是一样。我需要通过SpecialDog运行的所有查询,以返回数据库中类型为Dog的值。我的问题是因为我有一个type列,rails将WHERE"animals"."type"IN('SpecialDog')附加到我的查询中,所以我不能获取原始的Dog条目。所以我想要的是以某种方式覆盖rails在通过SpecialDog访问数据库时使用的值,使其表现得像Dog。有没有办法覆盖用于类型
我试图在我的网站上实现使用Facebook登录功能,但在尝试从Facebook取回访问token时遇到障碍。这是我的代码:ifparams[:error_reason]=="user_denied"thenflash[:error]="TologinwithFacebook,youmustclick'Allow'toletthesiteaccessyourinformation"redirect_to:loginelsifparams[:code]thentoken_uri=URI.parse("https://graph.facebook.com/oauth/access_token
我的rails3.1.6应用程序中有一个自定义访问器方法,它为一个属性分配一个值,即使该值不存在。my_attr属性是一个序列化的哈希,除非为空白,否则应与给定值合并指定了值,在这种情况下,它将当前值设置为空值。(添加了检查以确保值是它们应该的值,但为简洁起见被删除,因为它们不是我的问题的一部分。)我的setter定义为:defmy_attr=(new_val)cur_val=read_attribute(:my_attr)#storecurrentvalue#makesureweareworkingwithahash,andresetvalueifablankvalueisgiven
我们在Ubuntu14.04和Gitlab9.3.7上运行,运行良好。我们正在尝试更新到Gitlabv9.3.8的最新安全补丁,但它给我们这个错误:Gem::Ext::BuildError:ERROR:Failedtobuildgemnativeextension.currentdirectory:/home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/re2-1.0.0/ext/re2/usr/local/bin/ruby-r./siteconf20170720-19622-15i0edf.rbextconf.rbcheckingformain(
有什么方法可以为url/path助手提供默认值吗?我有一个可选范围环绕我的所有路线:#config/routes.rbFoo::Application.routes.drawdoscope"(:current_brand)",:constraints=>{:current_brand=>/(foo)|(bar)/}do#...allotherroutesgohereendend我希望用户能够使用这些URL访问网站:/foo/some-place/bar/some-place/some-place为了方便起见,我在我的ApplicationController中设置了一个@current
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我来自C、php和bash背景,很容易学习,因为它们都有相同的C结构,我可以将其与我已经知道的联系起来。然后2年前我学了Python并且学得很好,Python对我来说比Ruby更容易学。然后从去年开始,我一直在尝试学习Ruby,然后是Rails,我承认,直到现在我还是学不会,讽刺的是那些打着简单易学的烙印,但是对于我这样一个老练的程序员来说,我只是无法将它
我想念Ruby中的Hash方法来仅转换/映射散列值。h={1=>[9,2,3,4],2=>[6],3=>[5,7,1]}h.map_values{|v|v.size}#=>{1=>4,2=>1,3=>3}你如何在Ruby中归档它?更新:我正在寻找map_values()的实现。#moreexamplesh.map_values{|v|v.reduce(0,:+)}#=>{1=>18,2=>6,3=>13}h.map_values(&:min)#=>{1=>2,2=>6,3=>1} 最佳答案 Ruby2.4引入了方法Hash#tran
编辑:经过进一步测试,问题似乎是站点特定的,理论上应该可以正常工作。本应位于多行的Textarea值正在一行中全部提交。textarea_values="value1\nvalue2"form=page.form_with(:id=>'form_id_here')form['my_textarea']=textarea_valuessubmit=form.button_with(:value=>'Submit')form.click_button(submit)提交的值是value1\nvalue2而不是预期的多行。有没有我可以尝试的另一种添加表单值的方法?
有人可以帮忙吗?我的堆栈是带有nginx/passenger和ruby2.2.2的ubuntu-server14.04。我无法使我的项目投入生产。在开发中一切运行正常。secret.ymlproduction:secret_key_base:secret_token:服务器server{listen80;server_namelogvs.local;passenger_enabledon;passenger_app_envdevelopment;root/var/www/logvs/public;}错误日志App2532stderr:[2015-06-0722:56:01.4724
我有散列的散列(@post),我想在其中保持散列键在数组(@post_csv_order)中的顺序,还想保持关系键=>数组中的值。我不知道数组中@post哈希和key=>value元素的最终数量。我不知道如何在循环中为数组中的所有元素分配散列。一个接一个@post_csv_order[0][0]=>@post_csv_order[0][1]效果很好。#require'rubygems'require'pp'@post={}forum_id=123#onlysamplevalues....tomakethissamplescriptworkpost_title="Testpost"@po