пользовательский файл php.ini в подпапке, вызывающий проблемы с переменными $ _SESSIONS - PullRequest
1 голос
/ 06 апреля 2011

У меня есть подпапка с двумя файлами.Первый - это email.php, с формой, которую пользователь может отправить мне по электронной почте.Он также имеет скрипт, похожий на капчу для предотвращения спама, и использует $_SESSION[foo] переменные.Второй - upload.php, который позволяет зарегистрированным пользователям загружать файлы.Оба файла работали нормально.Теперь мне нужно увеличить upload_max_filesize с базовых 2MB для upload.php.Мой хост не предоставляет доступ к основному php.ini, но я рекомендую создать в этой подпапке пользовательский файл php.ini.Поэтому я создал:

php.ini

upload_max_filesize = 10M ;
post_max_size = 10M ;

Теперь я получаю сообщения об ошибках 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') при отправке формы / капчи на email.php.

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

Я обнаружил, что $_SESSION[foo] пусто даже с else.После некоторых исследований я обнаружил, что когда я запускал phpinfo(), то session.save_path был no 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 = 2 МБ для upload.php.Любая помощь будет оценена.

1 Ответ

2 голосов
/ 06 апреля 2011

Это проблема с настройками CGI PHP, когда директивы php.ini сервера не касаются пользовательских конфигураций.

Я подробно писал об этом здесь - http://blog.philipbrown.id.au/2009/08/php-suexec-and-custom-php-ini-files/


$ _ SESSION [foo] = $ _ GET [bar];иначе $ _SESSION [foo] = "foobar.php";включают ($ _ SESSION [ 'Foo']);

Я немного смущен этим фрагментом.Он не только недопустим (без оператора if, индексы массива не заключены в кавычки), но и крайне небезопасен.

...