如何使用发布数据提交recaptcha

时间:2015-04-15 17:48:42

标签: php httpwebrequest http-post captcha recaptcha

我无法确定将数据发布到Google Recpatcha的网址。

例如我可以访问我的网站http://www.winfreebitcoin.co/login.php 然后我就可以获得6LcujwETAAAAAFVu4q6R8F0dfQEroEpeP2YIWViS的公钥

然后转到

http://www.google.com/recaptcha/api/challenge?k=6LcujwETAAAAAFVu4q6R8F0dfQEroEpeP2YIWViS

获得挑战

然后我可以去这样的东西来获取图像

http://www.google.com/recaptcha/api/image?c=03AHJ_VuvRj66zfLX3gox2JRbzpnhXheEo7PeAXLjbG07ezT-GPRWT9jj6lihszM6odlUIB7Bkd60unQAJII61Fau9tMfLR0A290U1e2_o1oU-e1qgm15uyHMS4YBt8vonrUn2qLqBAvcpyUS1lb83tvwW8O6x_iaXTEPRTdzgCGcBP5_EHHNvvmjeVpT1Q5_2xLyJaNg6sJwnouwW43G5m_zr_7nw2b9Vrhya16TPbR2kEBCb1OnjVPbDvJB33ddZQsdo1Pm9EnHS

我的问题是在我得到图像之后,如何将数据发送回页面以便验证验证码?

我知道你应该发布这个领域 recaptcha_challenge_field和 recaptcha_response_field

但我不知道将它发布到哪里

我已尝试过验证码表单的网站

http://www.winfreebitcoin.co/login.php

主要网站

http://www.winfreebitcoin.co/

和google captcha公钥

http://www.google.com/recaptcha/api/challenge?k=6LcujwETAAAAAFVu4q6R8F0dfQEroEpeP2YIWViS

并且这些似乎都不起作用

这里是发布数据的网址,所以也许我这样做错了?

http://www.google.com/recaptcha/api/challenge?k=6LcujwETAAAAAFVu4q6R8F0dfQEroEpeP2YIWViS&recaptcha_challenge_field=03AHJ_Vusq-MxDZ3y5S8VSMeFxXp_Dmw5zq1T39PCin3I9d5pXYWVCaGh0uURBJ3szrzeN_C1kbBT4WSeCl3dlP4v9r5-rNb7bzUDgBvzViYEnH3_5p6pCSn7jY1lqO1DR_45GcIAm67dDmBqSdeDtvkPY2ESvMMcmDDIgCQ5Pr_HnGOqgi_XZYm88fCUUCQY2EEbBdEok74CG5DGg_iNjb2Md09bAYab8wOtQLPPWi6SfNAPTcuDrR4iXVWnJs1bJSOtDqQceW0-R&recaptcha_response_field=trlynac

任何人都可以告诉我如何提交谷歌验证码以及将数据发布到的网址是什么?

由于

更新 我主要是用这个从网站收集比特币,所以我真的不能使用PHP脚本,我的机器人在vb.net

1 个答案:

答案 0 :(得分:1)

您应该像这样验证:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://www.google.com/recaptcha/api/siteverify?secret=YOUR_SECRET_HERE&response='.$_POST['g-recaptcha-response'].'&remoteip='.$_SERVER['REMOTE_ADDR']);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$res = curl_exec($ch);
curl_close($ch);
$res = json_decode($res);

if($res->success != 1)
    die('wrong recaptcha');