Помогите найти ошибку

Тема в разделе "PHP", создана пользователем sergey_prusov, 19 мар 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. sergey_prusov

    sergey_prusov

    Регистр.:
    31 окт 2008
    Сообщения:
    205
    Симпатии:
    3
    Народ подскажите пожалуйста что я делаю не так: выдает ошибку "имеет недопустимый формат" или вообще нельзя загрузить (короче все те ошибки которые прописаны). Нужно сделать так чтобы загружался баннер на серв размером 100на100 формата gif или jpg
    сам код
    PHP:
    <?php
    if($_GET['act'] == 'save') {
        
    $url        addslashes(htmlspecialchars($_POST['url']));
        
    $name        addslashes(htmlspecialchars($_POST['name']));
            
    $file        addslashes(htmlspecialchars($_FILES['file']['name'], ENT_QUOTES));
        
    $descr        addslashes(htmlspecialchars($_POST['descr']));
        
    $stopor        intval($_POST['stopor']);
        
    $geo        substr(addslashes(htmlspecialchars($_POST['geo'], ENT_QUOTES)), 02);
        
    $FILE_EXTENSIONS    substr(strrchr($file,"."),1);
        
    $size                $_FILES['file']['size'];
        
    $size2                GetImageSize($_FILES['file']['tmp_name']);
        
    $price        sprintf("%01.4f"$_POST['price']);
        
    $urls        substr($url04);
        if(
    $urls != "http") {
            
    $url "http://".$url;
        }
        
    $result        mysql_query("SELECT price FROM parametrs WHERE path = 'tizer' AND geo = '".$geo."' LIMIT 1");
        
    $row        mysql_fetch_array($result);
        
    $minsum        $row[price];
        if(!
    $url || $url == "http://") {
            print 
    "<p align=\"center\" class=\"er\">Введите URL! <a href=\"?action=add&add=tizer\">« Назад</a></p>";
        } elseif (!
    $name || !$descr) {
            print 
    "<p align=\"center\" class=\"er\">Укажите описание/название сайта! <a href=\"?action=add&add=tizer\">« Назад</a></p>";
        } elseif (
    $price $minsum && $price != 0) {
            print 
    "<p align=\"center\" class=\"er\">Цена не должна быть ниже ".$minsum." WMR! <a href=\"?action=add&add=tizer\">« Назад</a></p>";
        } elseif (
    mysql_num_rows(mysql_query("SELECT * FROM advert_tizer WHERE lower(url) like lower('%$u%') AND status = 3"))) {
            print 
    "<p align=\"center\" class=\"er\">Ваш URL в чёрном списке! <a href=\"?action=add&add=tizer\">« Назад</a></p>";
    } elseif (
    $FILE_EXTENSIONS != "jpg" && $FILE_EXTENSIONS != "gif") {
            print 
    "<p align=\"center\" class=\"er\">Ваш баннер имеет недопустимый формат! [только *.gif; *.jpg]! <a href=\"?action=add&add=tizer\">« Назад</a></p>";
    } elseif (
    $size 102400) {
            print 
    "<p align=\"center\" class=\"er\">Размер Вашего баннера превышает 100 Кb! <a href=\"?action=add&add=tizer\">« Назад</a></p>";
        } elseif (
    $size2[0] != 100 || $size2[1] != 100) {
        print 
    "<p align=\"center\" class=\"er\">Размеры баннера должены быть строго 100х100рх <a href=\"?action=add&add=tizer\">« Назад</a></p>";
    } else {
                                
    $bname rand(0,9)."_".time().".".$FILE_EXTENSIONS;
                    
    $upl copy($_FILES['file']['tmp_name'], "../images/tizer/".$bname);
                    if(!
    $upl) {
                        print 
    "<p class=\"er\">Невозможно загрузить баннер! <a href=\"?action=add&add=tizer\">« Назад</a></p>";
                        
    $er 1;
    } else {
                
    $sql 'INSERT INTO advert_tizer (name, img, descr, user_id, url, stopor, price, geo) VALUES ("'.$name.'", "'.$bname.'", "'.$descr.'", '.$user_id.', "'.$url.'", '.$stopor.', '.$price.', "'.$geo.'")';
                if(
    mysql_query($sql)) {
                    print 
    "<p align=\"center\" class=\"erok\">URL успешно добавлен! <a href=\"?action=\">Список сайтов</a></p>";
                } else {
                    print 
    "<p align=\"center\" class=\"er\">Произошла ошибка при записи в БД! <a href=\"?action=add&add=tizer\">« Назад</a></p>";
    }            
    }
            }
    } else {
    ?>
     
  2. sergey_prusov

    sergey_prusov

    Регистр.:
    31 окт 2008
    Сообщения:
    205
    Симпатии:
    3


    нет дело не в этом!!! просто отказывается загружать картинку на сервер и выдает те ошибки которые прописаны!
     
  3. Flock

    Flock Постоялец

    Регистр.:
    16 июн 2007
    Сообщения:
    142
    Симпатии:
    44
    подайте на вывод $FILE_EXTENSIONS перед сравнением и убедитесь что там точь-в-точь все совпадает.

    У вас условие неверное
    PHP:
     elseif ($FILE_EXTENSIONS != "jpg" && $FILE_EXTENSIONS != "gif"
    а надо
    PHP:
     elseif ($FILE_EXTENSIONS != "jpg" ||$FILE_EXTENSIONS != "gif"
     
  4. sergey_prusov

    sergey_prusov

    Регистр.:
    31 окт 2008
    Сообщения:
    205
    Симпатии:
    3


    Попробовал сделать как Вы предложили, но тоже самое(((
     
  5. bondaf

    bondaf Постоялец

    Регистр.:
    16 мар 2010
    Сообщения:
    85
    Симпатии:
    20
    Действительно, надо добавить дебаговых выводов. В том числе и весь $_POST.

    Например так:
    PHP:
    var_dump($_POST);
    или так, в более удобной форме.
    PHP:
    echo "<pre>";
    print_r($_POST);
    echo 
    "</pre>";
    Потом вывести все Ваши переменные.

    Проверять на расширение файла лучше регистронезависимо.

    Ну и входные данные тоже не плохо бы видеть
     
  6. sergey_prusov

    sergey_prusov

    Регистр.:
    31 окт 2008
    Сообщения:
    205
    Симпатии:
    3


    неа...тоже самое + куча еще всего..... я писал это по рабочему коду тупо в контекст добавил баннер ну разумеется в табл добавил поле.... однозначно что-то с $name
     
  7. bondaf

    bondaf Постоялец

    Регистр.:
    16 мар 2010
    Сообщения:
    85
    Симпатии:
    20
    Что тоже самое? это же не решение проблемы, а просто дебаговый вывод. Добавь это и скинь сюда, что получается
     
  8. sergey_prusov

    sergey_prusov

    Регистр.:
    31 окт 2008
    Сообщения:
    205
    Симпатии:
    3
    А может что-нибудь предложите другое (на основе данного кода)? Как еще можно загрузить картинку на сервер???
     
  9. zss

    zss Постоялец

    Регистр.:
    22 июн 2007
    Сообщения:
    55
    Симпатии:
    6
    А форма для передачи файла имеет правильный формат?
    Должно быть
    <FORM ENCTYPE="multipart/form-data" METHOD="POST">
     
  10. sigmas

    sigmas Создатель

    Регистр.:
    8 мар 2010
    Сообщения:
    21
    Симпатии:
    1
    выведи $FILE_EXTENSIONS, может там формат написан большими буквами, попробуй вообще эту проверку убрать. Сработает или нет.
     
Статус темы:
Закрыта.