При загрузке файлов, размер которых превышает upload_max_filesize, не выводится ошибка $_FILES['filename']['error'], хотя если размер загружаемого файла превышает MAX_FILE_SIZE, должна выдаваться ошибка $_FILES['filename']['error'] = 2, которая говорит, что превышено значение MAX_FILE_SIZE указанное в HTML-форме, но она не выдается. Хоть какой-то результат ошибки можно получить только, если загружать файлы размером до 8МБ. Откуда это ограничение? Такое происходит на сервере, на котором я заказал хостинг. На моем локальном сервере (Denwer) - такого не происходит.
Следовательно, как я понимаю, проблема кроется в настройках сервера, а именно php.ini.
Профи подскажите пожалуйста, какие параметры могут на это влиять.
Бьюсь над этой проблемой уже больше недели.
Настройки сервера в инете:
post_max_size => 16M => 16M
upload_max_filesize => 32M => 32M
<html>
<body>
<form id="form1" action="send_email.php" method="post" enctype="multipart/form-data">
<div class="type1">
<input type="hidden" name="MAX_FILE_SIZE" value="15728640" />
<input type="file" name="filename">
<input type="submit" value="Отправить">
</div>
</form>
</body>
</html>
<?php
echo '<pre>';
print_r ($_POST);
echo '</pre>';
echo "<pre>";
print_r ($_FILES['filename']);
echo "</pre>";
echo "<meta http-equiv='refresh'; content='5; url=/index.php'> ";
?>
Спустя 6 минут, 25 секунд (20.08.2011 - 19:42) Arni написал(а):
Спустя 9 минут, 33 секунды (20.08.2011 - 19:52) shkarbatov написал(а):
А при чем тут этот мануал? Мне нужна помошь врешении проблемы, а этот мануал я уже давно читал.
Дело в том, что хостер прислал свой php.ini, если я его подкладую в денвер, то получается то же, что и на хостинге, а если денверовский php.ini, тогда все работает =(
Дело в том, что хостер прислал свой php.ini, если я его подкладую в денвер, то получается то же, что и на хостинге, а если денверовский php.ini, тогда все работает =(
Спустя 35 минут, 8 секунд (20.08.2011 - 20:27) AlexWindHope написал(а):
А сравнить и понять в чем дело - вера не позволяет?
Заодно и нам бы рассказали
![huh.gif](http://phpforum.ru/html/emoticons/huh.gif)
Заодно и нам бы рассказали
Спустя 7 минут, 25 секунд (20.08.2011 - 20:34) shkarbatov написал(а):
Сравнивал, что-то не получается. По идее все правильно, на локал хосте все работает, те параметры, которые вы показали в мануале идентичны, но на одном работает, а на другом нет.
Спустя 36 минут, 32 секунды (20.08.2011 - 21:11) Arni написал(а):
А почему просто не сделать вывод все ли нормально на основании этой операции?
Или вы файл сразу в базу данных хотите перегнать?
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
echo "Файл корректен и был успешно загружен.\n";
} else {
echo "Возможная атака с помощью файловой загрузки!\n";
}
Или вы файл сразу в базу данных хотите перегнать?
Спустя 13 минут, 51 секунда (20.08.2011 - 21:24) shkarbatov написал(а):
Вы не поняли, я печатаю содержимое массива $_FILES['filename']
Смысла перемещать файла нет, так как в массиве $_FILES['filename'] какая-либо информация отсутствует, ровно как и в массиве $_POST. Если $_POST массив пустой, тогда данные не формируются в него. Идет просто "обрубка" записи данных в него.
Смысла перемещать файла нет, так как в массиве $_FILES['filename'] какая-либо информация отсутствует, ровно как и в массиве $_POST. Если $_POST массив пустой, тогда данные не формируются в него. Идет просто "обрубка" записи данных в него.
Спустя 7 минут, 11 секунд (20.08.2011 - 21:32) Arni написал(а):
Это я увидел еще в коде из первого поста.
Я просто подумал что вам нужен факт ошибки.
Давайте начнем сначала. Можете дать ссылки на phpinfo() там и там?
![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
Давайте начнем сначала. Можете дать ссылки на phpinfo() там и там?
Спустя 13 минут, 2 секунды (20.08.2011 - 21:45) inpost написал(а):
shkarbatov
Если пакет минимальный, то скорее всего хостинг заблокировал эту директиву, поэтому ты изменить не можешь.
Если пакет минимальный, то скорее всего хостинг заблокировал эту директиву, поэтому ты изменить не можешь.
Спустя 12 минут, 56 секунд (20.08.2011 - 21:58) shkarbatov написал(а):
php.ini - не дают редактировать.
Мне просто необходимо найти решение проблемы.
shkarbatov.com/apache/ini.rar - здесь два файла php.ini с denwer и с сервера в инете
Мне просто необходимо найти решение проблемы.
shkarbatov.com/apache/ini.rar - здесь два файла php.ini с denwer и с сервера в инете
Спустя 5 минут, 22 секунды (20.08.2011 - 22:03) twin написал(а):
В .htaccess попробуй это:
А вообще, почему стесняешься в саппорт постучать?
upd Немного не то скопировал. Поправил.
php_value upload_max_filesize 32M
А вообще, почему стесняешься в саппорт постучать?
upd Немного не то скопировал. Поправил.
Спустя 2 минуты, 27 секунд (20.08.2011 - 22:05) Invis1ble написал(а):
Цитата |
В .htaccess попробуй это: php_value memory_limit 32M |
и еще
php_value upload_max_filesize 32M
Спустя 12 минут, 45 секунд (20.08.2011 - 22:18) shkarbatov написал(а):
Не помогает ничего.
А суппорт отморозился от меня, наверное если так будет продолжаться, то я буду переводить от них свои сайты и сайты своих клиентов
А суппорт отморозился от меня, наверное если так будет продолжаться, то я буду переводить от них свои сайты и сайты своих клиентов
Спустя 28 минут, 49 секунд (20.08.2011 - 22:47) alex12060 написал(а):
Я понять не могу, в чем проблема? У тебя не грузятся большие файлы или наоборот, грузятся, но ошибки не происходит?
Спустя 7 минут, 32 секунды (20.08.2011 - 22:55) Invis1ble написал(а):
alex12060
Я так понял, что файлы просто не грузятся из-за ограничений хоста (upload_max_filesize скорее всего)
Да, кстати, о каком размере файлов идет речь?
Я так понял, что файлы просто не грузятся из-за ограничений хоста (upload_max_filesize скорее всего)
Да, кстати, о каком размере файлов идет речь?
Спустя 25 минут, 43 секунды (20.08.2011 - 23:20) shkarbatov написал(а):
Попробую разложить все по полочкам:
По $_FILES['filename']['error'] я анализирую загрузку файла, если он равен 0 - тогда все классно, если файл превышает размер указанный в MAX_FILE_SIZE, в моем слачае это 15М - должен выдаваться $_FILES['filename']['error'] равным 2, но такого не происходит.
При попытке вывести массивы $_POST и $_FILES['filename'] выводится:
{
}
{
}
И все, если массивы пусты, соответственно о загружаемом файле нет никакой инфы и соответственно он не загружается.
По $_FILES['filename']['error'] я анализирую загрузку файла, если он равен 0 - тогда все классно, если файл превышает размер указанный в MAX_FILE_SIZE, в моем слачае это 15М - должен выдаваться $_FILES['filename']['error'] равным 2, но такого не происходит.
При попытке вывести массивы $_POST и $_FILES['filename'] выводится:
{
}
{
}
И все, если массивы пусты, соответственно о загружаемом файле нет никакой инфы и соответственно он не загружается.
Спустя 10 часов, 1 минута, 29 секунд (21.08.2011 - 09:22) twin написал(а):
Я правильно понял,
А на маленькие файлы нормально реагирует?
var_dump($_FILES);выдаёт пустоту?
А на маленькие файлы нормально реагирует?
Спустя 52 минуты, 29 секунд (21.08.2011 - 10:14) shkarbatov написал(а):
Абсолютно верно!
var_dump($_FILES); выводит array(0) { }
Забыл зайти в аккаунт =)
var_dump($_FILES); выводит array(0) { }
Забыл зайти в аккаунт =)
Спустя 34 минуты, 28 секунд (21.08.2011 - 10:49) kirik написал(а):
shkarbatov
Посмотрите директиву register globals, и гляньте что находится в массиве $GLOBALS на момент сабмита формы.
Посмотрите директиву register globals, и гляньте что находится в массиве $GLOBALS на момент сабмита формы.
Спустя 34 минуты, 23 секунды (21.08.2011 - 11:23) shkarbatov написал(а):
Вот что он выдает:
Свернутый текст
Array
(
[GLOBALS] => Array
*RECURSION*
[_ENV] => Array
(
[TERM] => xterm
[PATH] => /sbin:/usr/sbin:/bin:/usr/bin
[PWD] => /
[LANG] => C
[SHLVL] => 2
[_] => /usr/sbin/httpd
)
[TERM] => xterm
[PATH] => /sbin:/usr/sbin:/bin:/usr/bin
[PWD] => /
[LANG] => C
[SHLVL] => 2
[_] => /usr/sbin/httpd
[678a52137a318140ea2e9fb6de0152b8] => rm29o2um58f8f37uesdrke4764
[HTTP_HOST] => xxxxxx.com.ua:8080
[HTTP_CONNECTION] => keep-alive
[HTTP_REFERER] => http://xxxxxx.com.ua:8080/1/
[CONTENT_LENGTH] => 20180964
[HTTP_CACHE_CONTROL] => max-age=0
[HTTP_ORIGIN] => http://xxxxxx.com.ua:8080
[HTTP_USER_AGENT] => Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.112 Safari/535.1
[CONTENT_TYPE] => multipart/form-data; boundary=----WebKitFormBoundaryiyNLtrDAklE4Xfvo
[HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
[HTTP_ACCEPT_ENCODING] => gzip,deflate,sdch
[HTTP_ACCEPT_LANGUAGE] => ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
[HTTP_ACCEPT_CHARSET] => windows-1251,utf-8;q=0.7,*;q=0.3
[HTTP_COOKIE] => 678a52137a318140ea2e9fb6de0152b8=rm29o2um58f8f37uesdrke4764
[SERVER_SIGNATURE] =>
[SERVER_SOFTWARE] => Apache/2.2.3 (CentOS)
[SERVER_NAME] => xxxxxx.com.ua
[SERVER_ADDR] => xxx.xxx.xxx.xxx
[SERVER_PORT] => 8080
[REMOTE_ADDR] => xxx.xxx.xxx.xxx
[DOCUMENT_ROOT] => /var/www/vhosts/xxxxxx.com.ua/httpdocs
[SERVER_ADMIN] => xxxxxx.com.ua@xxx.com
[SCRIPT_FILENAME] => /var/www/vhosts/xxxxxx.com.ua/httpdocs/1/send_email.php
[REMOTE_PORT] => 1757
[GATEWAY_INTERFACE] => CGI/1.1
[SERVER_PROTOCOL] => HTTP/1.1
[REQUEST_METHOD] => POST
[QUERY_STRING] =>
[REQUEST_URI] => /1/send_email.php
[SCRIPT_NAME] => /1/send_email.php
[PHP_SELF] => /1/send_email.php
[REQUEST_TIME] => 1313914693
[_POST] => Array
(
)
[_GET] => Array
(
)
[_COOKIE] => Array
(
[678a52137a318140ea2e9fb6de0152b8] => rm29o2um58f8f37uesdrke4764
)
[_SERVER] => Array
(
[HTTP_HOST] => xxxxxx.com.ua:8080
[HTTP_CONNECTION] => keep-alive
[HTTP_REFERER] => http://xxxxxx.com.ua:8080/1/
[CONTENT_LENGTH] => 20180964
[HTTP_CACHE_CONTROL] => max-age=0
[HTTP_ORIGIN] => http://xxxxxx.com.ua:8080
[HTTP_USER_AGENT] => Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.112 Safari/535.1
[CONTENT_TYPE] => multipart/form-data; boundary=----WebKitFormBoundaryiyNLtrDAklE4Xfvo
[HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
[HTTP_ACCEPT_ENCODING] => gzip,deflate,sdch
[HTTP_ACCEPT_LANGUAGE] => ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
[HTTP_ACCEPT_CHARSET] => windows-1251,utf-8;q=0.7,*;q=0.3
[HTTP_COOKIE] => 678a52137a318140ea2e9fb6de0152b8=rm29o2um58f8f37uesdrke4764
[PATH] => /sbin:/usr/sbin:/bin:/usr/bin
[SERVER_SIGNATURE] =>
[SERVER_SOFTWARE] => Apache/2.2.3 (CentOS)
[SERVER_NAME] => xxxxxx.com.ua
[SERVER_ADDR] => xxx.xxx.xxx.xxx
[SERVER_PORT] => 8080
[REMOTE_ADDR] => xxx.xxx.xxx.xxx
[DOCUMENT_ROOT] => /var/www/vhosts/xxxxxx.com.ua/httpdocs
[SERVER_ADMIN] => xxxxxx.com.ua@gmail.com
[SCRIPT_FILENAME] => /var/www/vhosts/xxxxxx.com.ua/httpdocs/1/send_email.php
[REMOTE_PORT] => xxxx
[GATEWAY_INTERFACE] => CGI/1.1
[SERVER_PROTOCOL] => HTTP/1.1
[REQUEST_METHOD] => POST
[QUERY_STRING] =>
[REQUEST_URI] => /1/send_email.php
[SCRIPT_NAME] => /1/send_email.php
[PHP_SELF] => /1/send_email.php
[REQUEST_TIME] => 1313914693
)
[_FILES] => Array
(
)
[_REQUEST] => Array
(
[678a52137a318140ea2e9fb6de0152b8] => rm29o2um58f8f37uesdrke4764
)
)
Спустя 8 минут (21.08.2011 - 11:31) kirik написал(а):
shkarbatov
Покажите phpinfo..
Покажите phpinfo..
Спустя 33 минуты, 18 секунд (21.08.2011 - 12:04) shkarbatov написал(а):
Функция phpinfo() запрещена на сервере.
Вот адрес файла настроек сервера php.ini
который мне прислал хостер: http://artpack.com.ua/1/php.ini.txt
Вот адрес файла настроек сервера php.ini
который мне прислал хостер: http://artpack.com.ua/1/php.ini.txt
Спустя 3 часа, 29 минут, 35 секунд (21.08.2011 - 15:34) shkarbatov написал(а):
Я написал хостеру письмо, что мол если он не поможет решить проблему, то я все сайты своих клиентов буду переводить на новый хостинг. и случилось ЧУДО - они у себя что-то поправили и все за работало =)
И почему в нашей стране все через одно место?
И почему в нашей стране все через одно место?
Спустя 8 минут (21.08.2011 - 15:42) Invis1ble написал(а):
Цитата |
Я написал хостеру письмо, что мол если он не поможет решить проблему, то я все сайты своих клиентов буду переводить на новый хостинг. и случилось ЧУДО - они у себя что-то поправили и все за работало =) |
Прыкол
![laugh.gif](http://phpforum.ru/html/emoticons/laugh.gif)
Цитата |
И почему в нашей стране все через одно место? |
риторический вопрос....