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

Статус
В этой теме нельзя размещать новые ответы.

sergey_prusov

Участник
Регистрация
31 Окт 2008
Сообщения
203
Реакции
4
Народ подскажите пожалуйста что я делаю не так: выдает ошибку "имеет недопустимый формат" или вообще нельзя загрузить (короче все те ошибки которые прописаны). Нужно сделать так чтобы загружался баннер на серв размером 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)), 0, 2);
	$FILE_EXTENSIONS	= substr(strrchr($file,"."),1);
	$size				= $_FILES['file']['size'];
	$size2				= GetImageSize($_FILES['file']['tmp_name']);
	$price		= sprintf("%01.4f", $_POST['price']);
	$urls		= substr($url, 0, 4);
	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 {
?>
 
нет дело не в этом!!! просто отказывается загружать картинку на сервер и выдает те ошибки которые прописаны!

подайте на вывод $FILE_EXTENSIONS перед сравнением и убедитесь что там точь-в-точь все совпадает.

У вас условие неверное
PHP:
 elseif ($FILE_EXTENSIONS != "jpg" && $FILE_EXTENSIONS != "gif")
а надо
PHP:
 elseif ($FILE_EXTENSIONS != "jpg" ||$FILE_EXTENSIONS != "gif")
 
подайте на вывод $FILE_EXTENSIONS перед сравнением и убедитесь что там точь-в-точь все совпадает.
У вас условие неверное
PHP:
 elseif ($FILE_EXTENSIONS != "jpg" && $FILE_EXTENSIONS != "gif")
а надо
PHP:
 elseif ($FILE_EXTENSIONS != "jpg" ||$FILE_EXTENSIONS != "gif")



Попробовал сделать как Вы предложили, но тоже самое(((
 
Действительно, надо добавить дебаговых выводов. В том числе и весь $_POST.

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

Потом вывести все Ваши переменные.

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

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



неа...тоже самое + куча еще всего..... я писал это по рабочему коду тупо в контекст добавил баннер ну разумеется в табл добавил поле.... однозначно что-то с $name
 
неа...тоже самое + куча еще всего..... я писал это по рабочему коду тупо в контекст добавил баннер ну разумеется в табл добавил поле.... однозначно что-то с $name
Что тоже самое? это же не решение проблемы, а просто дебаговый вывод. Добавь это и скинь сюда, что получается
 
А может что-нибудь предложите другое (на основе данного кода)? Как еще можно загрузить картинку на сервер???
 
А форма для передачи файла имеет правильный формат?
Должно быть
<FORM ENCTYPE="multipart/form-data" METHOD="POST">
 
выведи $FILE_EXTENSIONS, может там формат написан большими буквами, попробуй вообще эту проверку убрать. Сработает или нет.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху