2011-04-06 55 views
1

我有一个包含两个文件的子文件夹。第一个是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 ; 

我现在得到了错误Warning: include() [function.include]: Filename cannot be emptyWarning: include() [function.include]: Failed opening '' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php')当我提交email.php形式/验证码。

$_SESSION[foo]=$_GET[bar]; 
else $_SESSION[foo]="foobar.php"; 
include($_SESSION['foo']); 

我发现$_SESSION[foo]甚至与else空。经过一番研究,我发现当我跑phpinfo()session.save_pathno value(原来是/ tmp)。所以,现在

的php.ini

upload_max_filesize = 10M ; 
post_max_size = 10M ; 
session.save_path = /home/foobar/tmp ; 

但我仍然得到错误。如果我从这个文件夹中删除php.ini文件,那么email.php上的表单脚本就可以正常工作,但我回到upload_max_filesize = 2MB for upload.php。任何帮助,将不胜感激。

回答

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”; include($ _ SESSION ['foo']);

我对这段代码有些困惑。它不仅是无效的(没有if语句,数组索引没有引用),但非常不安全。

+0

我复制了这段代码,错过了第一部分的'if'语句和数组,我的错误很抱歉。我只是做了你在你的博客上推荐的cron工作。这工作完美,现在我的'phpinfo()'是正确的,两个页面都正常工作。谢谢。 – Sean 2011-04-06 05:17:26

+0

@Sean你仍然盲目地包含一个基于查询参数的文件。这是*从不*一个好主意 – Phil 2011-04-06 05:26:50

+0

我是新手,所以我感谢你的帮助。我继承了这个脚本,因为我已经接管了一个非营利性网站的管理。这是查询开始的脚本if(is_file($ _ GET [bar])和dirname($ _ GET [bar])=='。')$ _SESSION [foo] = $ _ GET [bar]; else $ _SESSION [foo] =“foobar.php”; include($ _ SESSION [foo]);' – Sean 2011-04-06 05:46:43

相关问题