Баги в форме добавления

  • Автор темы Автор темы nemo
  • Дата начала Дата начала

nemo

Новичок
Баги в форме добавления

Выходит ошибка в форме добавления, на денвере работало все нормально как залил на хост пошли баги
зайдите пожалуйсто

http://youex.ru/modules/authorization/

авторизируйтесь логин и пароль tester01
и зайдите сюда

http://youex.ru/?mod=lessons&lessons=add_lesson

к примеру попробуйте просто нажать загрузить обложку там выйдит такая ошибка

Warning: getimagesize() [function.getimagesize]: Filename cannot be empty in /home/youex/public_html/modules/lessons/load_wrapper.php on line 4
 
http://phpfaq.ru/debug

Ошибка в данных передаваемых в функцию getimagesize().
о чем собственно и говорит ошибка "Filename cannot be empty".
 
Всмысле?

вот исходник load_wrapper.php

<?php
$login=!empty($_POST['upload_login'])?$_POST['upload_login']:null;
$date_load=date('YmdHis');
$info_load=getimagesize($_FILES['upload_wrapper']['tmp_name']);
if(isset($_FILES['upload_wrapper'])&&$_FILES['upload_wrapper']['error']===0){
if($_FILES["upload_wrapper"]["type"]=="image/jpeg"or$_FILES["upload_wrapper"]["type"]=="image/jpg"or$_FILES["upload_wrapper"]["type"]=="image/gif"or$_FILES["upload_wrapper"]["type"]=="image/png"){
if($_FILES['upload_wrapper']['size']<"100000"){
if($info_load[0]<151&&$info_load[1]<151&&$info_load[0]>149&&$info_load[1]>149){
if(!file_exists('./loads/'.$login.'')){mkdir("./loads/$login",0700);}
if(!file_exists('./loads/'.$login.'/wrapper')){mkdir("./loads/$login/wrapper",0700);}
mkdir("./loads/$login/wrapper/$date_load",0700);
if(move_uploaded_file($_FILES['upload_wrapper']['tmp_name'],'./loads/'.$login.'/wrapper/'.$date_load.'/'.$_FILES['upload_wrapper']['name']));
}}}}
?>
<body onload="parent.document.getElementById('upload_wrapper_ok').innerHTML=document.body.innerHTML"><?php if(is_dir('./loads/'.$login.'/wrapper/'.$date_load.'')){echo('Готово. Обложка загружена<style type="text/css">.upload_wrapper_form{display:none} .error_lesson, .error_wrapper{display:none!important}</style>');}else{echo'<style type="text/css">.error_lesson, .error_wrapper{display:block}</style>';}?></body>
<iframe id="iframe_load_wrapper" class="none" onload="parent.document.getElementById('upload_wrapper_final').innerHTML=document.getElementById('iframe_load_wrapper').innerHTML"><?php $login=!empty($_POST['upload_login'])?$_POST['upload_login']:null; if(file_exists('./loads/'.$login.'/wrapper/'.$date_load.'')){echo('http://youex.ru/modules/lessons/loads/'.$login.'/wrapper/'.$date_load.'/'.$_FILES['upload_wrapper']['name'].''.'');}?></iframe>

-~{}~ 18.07.10 14:31:

Single
как исправить эту ошибку? темболее что почему на денвере работало
 
nemo
как исправить эту ошибку?
код твой, логично что ошибку нужно найти тебе самостоятельно.

темболее что почему на денвере работало
и? я вот вообще не в курсе что такое денвер но подозреваю что это отдельный веб сервер и раз уж на нем этой ошибки не возникает значит есть какие то отличия в настройках двух серверов. (подсказка смотреть еррор левел).

$info_load=getimagesize($_FILES['upload_wrapper']['tmp_name']);
что делает эта строка?
 
var_dump($_FILES);
Смотришь error
потом идешь в http://www.php.net/manual/en/features.file-upload.errors.php
И смотришь ПАЧИМУ на дервере работало а не на денвере не работает.
 
Возможно на Денвере ошибка просто не отображалась. В начале скрипта надо поставить ini_set("error_reporting", E_ALL | E_STRICT) для отображения всех ошибок.
И необходимо проверить, чтобы $_FILES['upload_wrapper'] существовала, а потом уже делать функцию getimagesize()
 
Нет, сначала необходимо переместить файл с помощью move_uploaded_file() в какую-то директорию, затем уже getimagesize().
 
Вурдалак
вовсе не обязательно, если файл не подходит по каким то соображениям, то не надо его никуда перемешать, а вызвать getimagesize на temp файле

-~{}~ 20.07.10 00:30:

if($info_load[0]<151&&$info_load[1]<151&&$info_load[0]>149&&$info_load[1]>149){
Эпично...

if($_FILES['upload_wrapper']['size']<"100000")
Очень интересно

if(!file_exists('./loads/'.$login.'')){mkdir("./loads/$login",0700);}
if(!file_exists('./loads/'.$login.'/wrapper')){mkdir("./loads/$login/wrapper",0700);}
мануал почитай, там третий параметр есть. я бы написал в виде:
!file_exists("xxx/yyy") && mkdir("xxx/yyy", 0700, true);
 
Вурдалак
вовсе не обязательно, если файл не подходит по каким то соображениям, то не надо его никуда перемешать, а вызвать getimagesize на temp файле
Обязательно. Как раз из-за open_basedir.
 
Adelf
Вурдалак
Да, но в теме пока никто о них словом не обмолвился.
 
спасибо так приятно когда чувствуется поддержка)

-~{}~ 20.07.10 14:54:

я начел с нуля тесттировать . С простой загрузки. он выводит это.

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpn34DsW'
to 'http://youex.ru/modules/lessons/loads/wrapper.jpg' in /home/youex/public_html/modules/lessons/load_wrapper.php on line 3

что тут?

-~{}~ 20.07.10 15:07:

Я прописал права на 777 в /public_html и в /modules и в /lessons и в /loads
и в load_wrapper.php и в tmp

где нужно поставить?
 
Автор оригинала: nemo
спасибо так приятно когда чувствуется поддержка)

-~{}~ 20.07.10 14:54:

я начел с нуля тесттировать . С простой загрузки. он выводит это.

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpn34DsW'
to 'http://youex.ru/modules/lessons/loads/wrapper.jpg' in /home/youex/public_html/modules/lessons/load_wrapper.php on line 3

что тут?

-~{}~ 20.07.10 15:07:

Я прописал права на 777 в /public_html и в /modules и в /lessons и в /loads
и в load_wrapper.php и в tmp

где нужно поставить?
Путь абсолютный должен быть.
 
Сверху