我有一个apache webserver,运行以下php。
<?php
if(!empty($_POST['Message'])){
$var = $_POST['Message'];
file_put_contents("data.txt", $var . "\n", FILE_APPEND);
header("Location: https://google.ru");
exit();
}
?>
基本上,它从字段中获取提交的消息,并将其发布到.txt文件中。它适用于小输入(20-30个字符)。但它崩溃的不止于此。 我已经检查过apache / php error.log但是没有什么有趣的或与apache相关的.. 我只有来自apache access.log的那些日志错误
"POST /executable.php HTTP/1.1" 200 215 "https://randomsite.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/xx.0.xxx.333 Safari/537.36"
我检查了php.ini以修改post_size和max_memory,它给了我2个结果
/etc/php5/cli/php.ini
/etc/php5/apache2/php.ini
我修改了/etc/php5/apache2/php.ini
max_execution_time 300
post_max_size = 500M
memory limit = 1024M
仍然无法正常工作,只有少量输入会发布到data.txt文件中。
编辑: 我修改了脚本以检查错误
<?php error_reporting(E_ALL); ini_set('display_errors', 1);
if(!empty($_POST['Message'])){
$var = $_POST['Message'];
file_put_contents("data.txt", $var . "\n", FILE_APPEND);
header("Location: https://google.ru");
exit();
}
?>
现在在errors.log中我有
PHP Parse error: syntax error, unexpected 'if' (T_IF) in /var/www/example.com/executable.php on line 2, referer: https://example.com/
EDIT2:SECCOND ATEMPT(不工作)
<?php ini_set('post_max_size', '300M');
if(!empty($_POST['Message'])){
$var = $_POST['Message'];
file_put_contents("data.txt", $var . "\n", FILE_APPEND);
header("Location: https://google.ru");
exit();
}
?>
答案 0 :(得分:1)
将此行添加到.htaccess文件
php_value post_max_size 30M
这通常发生在php 5.3或更低版本。
如果您没有.htacess文件,请在您的应用程序根文件夹下创建一个
如果您在php.ini中添加了相同内容,请尝试重新启动服务器。
希望这有用。