我有一个包含两个文件的子文件夹。第一个是email.php,其中包含一个用户可以向我发送电子邮件的表单。它还有一个类似验证码的脚本来防止垃圾邮件,并使用$_SESSION[foo]
个变量。第二个是upload.php,它允许注册用户上传文件。两个文件都运行良好。现在我需要为upload.php增加基数为2MB的upload_max_filesize。我的主机不提供对主php.ini的访问,但建议我在这个子文件夹中创建一个自定义的php.ini文件。所以我创建了:
的php.ini
upload_max_filesize = 10M ;
post_max_size = 10M ;
当我在email.php上提交表单/验证码时,我现在收到错误Warning: include() [function.include]: Filename cannot be empty
和Warning: include() [function.include]: Failed opening '' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php')
。
$_SESSION[foo]=$_GET[bar];
else $_SESSION[foo]="foobar.php";
include($_SESSION['foo']);
我发现即使使用$_SESSION[foo]
,else
也是空的。经过一些研究后,我发现当我phpinfo()
session.save_path
no value
upload_max_filesize = 10M ;
post_max_size = 10M ;
session.save_path = /home/foobar/tmp ;
时(原来是/ tmp)。所以现在
的php.ini
upload_max_filesize
但我仍然得到错误。如果我从这个文件夹中删除php.ini文件,那么email.php上的表单脚本就可以正常工作了,但是对于upload.php我回到了{{1}} = 2MB。任何帮助将不胜感激。
答案 0 :(得分:2)
这是CGI PHP设置的问题,其中服务器php.ini
指令不会级联到自定义配置中。
我在这里广泛地写了这篇文章 - http://blog.philipbrown.id.au/2009/08/php-suexec-and-custom-php-ini-files/
$ _ SESSION [富] = $ _ GET [巴]; else $ _SESSION [foo] =“foobar.php”; 包括($ _ SESSION [ '富']);
我对这个片段感到有点困惑。它不仅无效(没有if
语句,数组索引没有引用),而且非常不安全。