子文件夹中的自定义php.ini文件导致$ _SESSIONS变量出现问题

时间:2011-04-06 04:41:04

标签: session-variables php

我有一个包含两个文件的子文件夹。第一个是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 emptyWarning: 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。任何帮助将不胜感激。

1 个答案:

答案 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语句,数组索引没有引用),而且非常不安全。