не закачиваются файлы на сервер :(

зверек

Новичок
не закачиваются файлы на сервер :(

Прежде чем создать тему пересмотрела весь форум...не нашла ответа.
в локалке все работате, у хостера - нет :(

обычная формочка закачки файла (маленькой картинки) на сервер.


<form action="" method="post" enctype="multipart/form-data">

<input name="picmin" type="file">

<input name="jo_add" type="submit" value="go>


Дальше собсвенно скриптик загрузки. Не буду его приводить, потому что до него по сути и дела не доходит. все упирается в условие существования файла if(trim($picmin)!="" and file_exists ($picmin) and GetImageSize ($picmin))...

Скрипт должен записать файл в определенный каталог на серваке. Он этого не делает. Ничего не происходит просто напросто.

Ошибок не выводится никаких. (строчка error_reporting(E_ALL ^E_NOTICE); присутсвует, но..молчит)

Каталог, куда файл должен ложится - chmod 777

сделала вывод $_Files (правда, у прова версия пхп 4.0.3, поэтому использовала массив $HTTP_POST_FILES)
всю инфу выдает верно (размер, тип и прочее)...все как в локалке. Одно отличие, в локалке 'tmp_name' выдает путь к временной дирректории и имя файла с расширением. У прова - только путь. (/export/PHP/tmp/phpJ3nr2g) Самого файла нет.

Уже третий день маюсь :( Помогите, в чем дело-то? :(
 

зверек

Новичок
Romantik

у прова версия не поддерживающая $_FILES. Поэтому приходится использовать $HTTP_POST_FILES. Да какая разница в принципе? главное что показывает: файла нет.

lucas
Я вообще эту строчку убрала..Да, пошло дальше, но уткнулось в условие проверки расширения (должно быть gif либо jpg). Ни того, ни другого нет (раз файла то нет) и все.
 

Фанат

oncle terrible
Команда форума
(/export/PHP/tmp/phpJ3nr2g
это не путь.
это и есть имя файла с расширением.
бери да пользуй.

реальное имя и расширение смотри в $HTTP_POST_FILES
или как там оно... $picmin_name кажется.
В $GLOBALS, короче, посмотри.

-~{}~ 14.07.04 14:29:

Romantik
да че ты заладил - глобалс-глобалс?
версия 4 точка 0 точка 3
Какие там глобалс, прости господи?
 

Фанат

oncle terrible
Команда форума
обновить версию пхп - это самое лоучшее решение из предложенных, кстати.

А самое лучшее - бежать с такого сервера без оглядки.
Если там древняя версия пхп, то эт значит и со всем остальным дела обстоят ОЧЕНЬ плачевно. от поддержки до безопасности
 

зверек

Новичок
Фанат

Хм..что именно брать??? где файл? $HTTP_POST_FILES передает реальное имя и расширение того файла, который я закачиваю..вот он у меня на винте лежит, я его обзором в форму. вот его имя и показывает этот массив. А во временную папку файл попадает уже под каким-то своим временным именем. Вот например. запускаю скрипт у себя в локалке, зафигачиваю некий файл 111.jpg в форму, жму отправить. прежде чем фйал кладется в нужный каталог под нужным мне именем (имя формируется в скрипте, зависит от id, названия каталога..вобщем не суть) глобальные переменные показывают:
$HTTP_POST_FILES['picmin']['type'] - image/pjpeg
$HTTP_POST_FILES['picmin']['name'] - 111.jpg
$HTTP_POST_FILES['picmin']['size'] - 9943
$HTTP_POST_FILES['picmin']['tmp_name'] - /tmp\php84.tmp

Дальше запускаю скрипт на сервере у прова. Все то же самое кроме последнего массива:
/export/PHP/tmp/phpN48xA8

где .tmp?
Ну ок. допустим у прова расширение там как-то кодируется в имя файла и прочее...Но скрипт-т дальше не идет. А в скрипте дальше:

if(file_exists ($picmin))
{
$x=GetImageSize ($picmin);
echo "x=".$x[0];
....

если в локалке x=116, то у прова просто x=

-~{}~ 14.07.04 15:15:

Чтобы пинать прова мне надо быть уверенной что скрипты не работают по его вине, а не по моей.
Хотя я согласна разумеется, что ПО обновить им там не помешало бы...Вроде даже обещались. И все же, вдруг ошибка у меня?
 

Фанат

oncle terrible
Команда форума
девочка, ты совсем тормоз?
тебе шашечки или ехать?
тебе обязательно, чтобы .tmp было - без этого никак?
у прова НИЧЕГО НЕ КОДИРУЕТСЯ
тебя вообще не должно интереосвать, что у него там лежит
в $HTTP_POST_FILES['picmin']['tmp_name']
как бы, и "на локалке" у тебя этом поле имя СОВСЕМ не 111, а расширение - не джпг.
И тебя это там почему-то не волнует, а здесь - прямо жить без расширения не можешь.
Ничего там не кодируется.
это просто ДРУГОЕ ИМЯ. Неважно какое.
оно тебе нужно, чтобы к нему обратиться.

А имя файла передается отдельно. от файла.

Сейчас, я надеюсь, ясно?

echo $picmin выводит что-нибудь?
если да, то почему бы не проверить права на чтение?
если нет, то какой смысл пытаться узнать разрещшение у файла без имени?

-~{}~ 14.07.04 15:19:

Чтобы пинать прова мне надо быть уверенной что скрипты не работают по его вине, а не по моей.
Ошибка не в коде, а в ДНК.
Дело ВООБЩЕ не в том, работают скрипты, или нет.
А в том, что ВЕРСИЯ УСТАРЕЛА.
и это УЖЕ достаточное основание обновить.
Само по себе.

впрочем, само наличие версии ЧЕТЫРЕХ(!) годичной давности, равно как и отсутствие у тебя рефлекса НЕМЕДЛЕННО свалить оттуда, говорит о том, что лечить вас обоих бесполезно.
 

lucas

Guest
зверек

А в скрипте дальше:
if(file_exists ($picmin))
А что такое picmin? Где ты ее определяешь?

Если picmin -- имя временного файла, то прав на его чтение быть и не должно в 99% случаев.

Значит так, совершаем такие телодвижения:

1. Сокращаем код скрипта загрузки изображения + HTML-код формы до 15 строк и постим сюда.

2. Читаем http://detail.phpclub.net/article/upload и пробуем хотя-бы первый пример. О результатах сообщаем.
 

Фанат

oncle terrible
Команда форума
lucas
ну блин.
я же уже ответил.
после МЕНЯ отвечать уже не нужно.

А что такое picmin? Где ты ее определяешь?
подними глаза к форме. может увидишь.
1. Сокращаем код скрипта загрузки изображения + HTML-код формы до 15 строк и постим сюда.
это никому не нужно
ага, радостно пишем код для версии 4.1, который не менее радостно отказывается работать на 4.0.3

-~{}~ 14.07.04 15:46:

если уж давать ссылку - то на
http://php.spb.ru/php/upload.html
она писалась на такой же допотопной версии.
 

lucas

Guest
Фанат

1. Сначала речь шла об элементах массива HTTP_POST_VARS, а потом сразу -- picmin, причем не как массив (что было бы при reg_glob on), а как строка.

2. Ты предлагаешь искать ошибки по обрывкам кода, типа куска с file_exists?

3. Не поленился пробежать глазами статью. Функции, специфичных для PHP >= 4.1.0 не заметил. Поправь меня.

-~{}~ 14.07.04 17:53:

"Статья" === http://detail.phpclub.net/article/upload
 

Фанат

oncle terrible
Команда форума
оправдываться будешь перед прокурором.
Если тебе моего слова недостаточно, то в дискуссии я тем более с тобой вступать не буду
 

зверек

Новичок
Автор оригинала: Фанат
тебя вообще не должно интереосвать, что у него там лежит
в $HTTP_POST_FILES['picmin']['tmp_name']
как бы, и "на локалке" у тебя этом поле имя СОВСЕМ не 111, а расширение - не джпг.
И тебя это там почему-то не волнует, а здесь - прямо жить без расширения не можешь.
Сравнивая работу сервера в локалке и у прова я пыталась понять почему в одном случае работает, в другом нет.
111.jpg - да бог бы с ним. Он и там и там именно такой. Меня напрягло что в одном случае $HTTP_POST_FILES['picmin']['tmp_name'] показывает путь к файлу с расширением .tmp, в другом просто путь. Несоответсие, за которое я и зацепилась.


echo $picmin выводит что-нибудь?
если да, то почему бы не проверить права на чтение?
echo $picmin выводит тоже самое, что и $HTTP_POST_FILES['picmin']['tmp_name'] .
Права на чтение чего? временного файла во временном каталоге? Я проверю, скажите как?
 

Фанат

oncle terrible
Команда форума
ini_set('display_errors',1);
error_reporting(E_ALL ^E_NOTICE);
$x=GetImageSize ($picmin);

Хотя в 4.0 и так все ошибки выводятся на экран....
короче, если нет прав на чтение, то при чтении должна вылезти ошибка.

-~{}~ 14.07.04 16:12:

в любом случае, в коде
if(file_exists ($picmin))
{
$x=GetImageSize ($picmin);
у тебя ДВЕ функции.
и $x может быть пустой по вине ЛЮБОЙ из них.
Неужели сложно проверить, какая из них не срабатывает САМОСТОЯТЕЛЬНО?
А не разводить беспомощно руками?
 

зверек

Новичок
ini_set('display_errors',1);
error_reporting(E_ALL ^E_NOTICE);

повставляла куда только возможно. Ошибок никаких не выдается.
 

Фанат

oncle terrible
Команда форума
то есть
$x=GetImageSize ($picmin);
var_dump($x) тебе выдает пустой массив.
я тебя правильно понял?
и никаких ошибок?
А если написать $x=GetImageSize ("blablabla");
ошибки выдает?
Если нет - то озаботься получением информации об ошибках, и только потом продолжай с аплоадом.
в слепую это делать бесполезно
 

зверек

Новичок
Warning: getimagesize: Unable to open 'блаблабла' for reading. in /export/home/2mm/htdocs/admin/func.php on line 3
 

Фанат

oncle terrible
Команда форума
Судя по всему, файл есть, но как картинка он не определяется.
Видимо, перекодирует апач.
http://php.spb.ru/php/upload.html
в самом низу, "о глюках".
Об этом надо пинать провайдера.

и вообще запусти оттуда скрипт.
должен вывести содержимое. чисто для проверки моих мыслей. моих какунов...

-~{}~ 14.07.04 18:42:

это тоже тебе на заметку. камешек в огород
чего стоило написать
"file_exists ($picmin) проверку проходит, а GetImageSize возвращает пустой массив"?

И ВСЕ!
И никакого флейма!
проблема локализована, решение дадено.

или учимся отлаживать свои программы, или вообще не беремся писать.
 
Сверху