所以我试图通过 ajax 将一串字符发送到 php 脚本,这是 Ajax
function gVerify(){
var response = $('#g-recaptcha-response').val();
console.log(response);
$.ajax({
type: 'POST',
url: 'recaptcha.php',
data: { response: response},
success: function(data) {
if(data == 'true'){
console.log("Success");
} else{
console.log(data);
}
}
});
};
和 php
<?php
$ip = $_SERVER['REMOTE_ADDR'];
$response = $_POST['response'];
$url='https://www.google.com/recaptcha/api/siteverify';
$secret = '6LeIxAcTAAAAAGG-vFI1TnRWxMZNFuojJ4WifJWe';
$verifyCaptcha = file_get_contents($url."?secret=".$secret."&response=".$response."&remoteip=".$ip);
$captchaReply = json_decode($verifyCaptcha);
if(isset($captchaReply->success) AND $captchaReply->success == true){
//Captcha successful
return 1;
} else {
//captcha failed
echo json_encode($response);
}
?>
问题是如果值太长,php 变量 $response
不会接收到 post 值。我尝试手动发送字母数字字符串,如果我发送 1000 个字符,它不会收到,如果我发送 500 个字符,变量会收到数据,我通过 console.log(data) 在控制台中返回结果;
所以我知道其他一切都有效。那么这个地方有大小限制吗?
最佳答案
关于如果字符串太长,PHP 不接收 POST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37203048/