如果字符串太长,PHP 不接收 POST

标签 php ajax

所以我试图通过 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.ini 文件中设置了 post_max_size

您需要在此文件中增加该限制。

请看这里:http://php.net/manual/en/ini.core.php

关于如果字符串太长,PHP 不接收 POST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37203048/

相关文章:

php - 在 Laravel 中如何使用列连接日期和完成日期获取持续时间值

php - Eloquent ORM 是双引号表和字段

php - jQuery 图形插件

php - 转储非 ASCII 字符时 DOMDocument 行为不一致的解释是什么?

php - 如何创建触发文件打印的链接?

PHP - 如何最好地确定当前调用是来自 CLI 还是 Web 服务器?

javascript - Angular Js 初学者 Ajax 调用

JavaScript 代码签名

javascript - 在 jQuery 的 ajax.load() 之后,无法将元素附加到新加载的内容

javascript - 如何重新排列 HTML 标签的顺序?