我有一個textarea,如果少於一百萬個字符,它可以正常工作。只要有超過100萬個字符在$ _POST(所有其他字段都已發佈)中缺少字段。如果textarea超過一百萬個字符,則PHP發佈爲空
這可能是什麼原因造成的?在搜索我所見過的所有內容時,只有帖子大小限制和內存限制沒有字符限制。沒有錯誤正在顯示,並且這些設置好於2Mb文本大小。
我有一個textarea,如果少於一百萬個字符,它可以正常工作。只要有超過100萬個字符在$ _POST(所有其他字段都已發佈)中缺少字段。如果textarea超過一百萬個字符,則PHP發佈爲空
這可能是什麼原因造成的?在搜索我所見過的所有內容時,只有帖子大小限制和內存限制沒有字符限制。沒有錯誤正在顯示,並且這些設置好於2Mb文本大小。
爲了解決這個問題,它是suhosin限制字符。我需要設置以下內容:
suhosin.request.max_value_length = 100000000
suhosin.post.max_value_length = 100000000
是的!我有同樣的問題...解決它。 –
您是否嘗試在php.ini文件中增加post_max_size?
此外,您也可以使用一些其他的方式來發表您的數據即使用:
//execute an async method
function curl_request_async($url, $params, $type='GET'){
$post_params = array();
foreach ($params as $key => &$val) {
if (is_array($val)) $val = implode(',', $val);
$post_params[] = $key.'='.urlencode($val);
}
$post_string = implode('&', $post_params);
$parts=parse_url($url);
$fp = fsockopen($parts['host'],
(isset($parts['scheme']) && $parts['scheme'] == 'https')? 443 : 80,
$errno, $errstr, 999999999);
$out = "$type ".$parts['path'] . (isset($parts['query']) ? '?'.$parts['query'] : '') ." HTTP/1.1\r\n";
$out.= "Host: ".$parts['host']."\r\n";
$out.= "Content-Type: application/x-www-form-urlencoded\r\n";
$out.= "Content-Length: ".strlen($post_string)."\r\n";
$out.= "Connection: Close\r\n\r\n";
// Data goes in the request body for a POST request
if ('POST' == $type && isset($post_string)) $out.= $post_string;
fwrite($fp, $out);
fclose($fp);
}
你可以這樣調用函數:
$url = "somefile.php";
$data['mydata'] = "some data some data some data";
curl_request_async($url, $data, 'POST');
注:
不要使用文件"somefile.php"
中的任何類型的基於會話的認證。您可以訪問郵政數據,如$_POST['mydata']
。您也可以通過GET
調用此函數。不知道你在找什麼。
是的,這是遠遠高於郵政大小 – user4287915
請檢查我的更新! – hmd
這可能與您的Web服務器設置有關。你使用什麼服務器? – sunny
Apache與nginx代理 – user4287915
我不知道這方面的任何事情,但你應該檢查你的服務器文檔,並尋找像這樣的SO帖子:http://stackoverflow.com/questions/11686288/apaches-limit-to- post-request-size – sunny