[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Ошибка при заливание файла на сервер
Gans1g
Здраствйте проблема в том что написал код но толька вот когда я проста решил проверить не выбрал файл и нажал отправить выскочела ошибка если не сложно скажите пожалуйста из за чего она лезит гадина и как ее исправить что бы в дальнейшем уже самостоятельно бороться с ней,ниже приведу еще код заранее спасибо

Warning: in_array() [function.in-array]: Wrong datatype for second argument in C:\wamp\www\SSM\adminpanel\fotobase.php on line 112

PHP
if($_GET['action']=='upload')
{
      if(!
$_POST['up']) {
      echo 
'<form action="?action=upload" method="post" enctype="multipart/form-data">';
      echo 
'Выберите файл (не более 1мб): <input type="file" name="userfile" size="20" />&nbsp;&nbsp;';
      echo 
'Описание:<br/><textarea name="desc" rows=5 cols=20 wrap="off"></textarea><br/>';
      echo 
'<input type="submit" name="up" value="загрузить">';
      echo 
'</form>';

}
else 
{
      
$allowed_filetypes = array ('.jpg','.png','.gif');
      
$max_filesize 10024288;
      
$upload_path './gallery/';
      
      
$filename $_FILES['userfile']['name'];
      
$ext substr($filenamestrpos($filename,'.'), strlen($filename)-1);
      
      if(!
in_array($ext,$alowed_filetypes))
{
      echo 
'Данный тип файла не поддерживается толька-(jpg,png,gif)!';          
}
      if(
filesize($_FILES['userfile']['tmp_name']) > $max_filesize)
{
      echo 
'Файл превышает 10mb!';
}
      if(!
is_writable($upload_path))
{
      echo 
'Не возможно загрузить фото в папку! Установите права доступа на папку - 777.';
}
      if(
move_uploaded_file($_FILES['userfile']['tmp_name'],$upload_path $filename))
{
      echo 
'Файл успешно загружен!';
}
else
{
      echo 
'Не предвиденная ошибка папробуйте еще раз!';
}






Спустя 6 минут, 47 секунд (22.04.2009 - 21:46) Joker написал(а):
PHP


Но ведь эта переменная а не массив. а ты пытаешь искать в этом псевдо масиве))

Спустя 38 секунд (22.04.2009 - 21:46) Grazor написал(а):
PHP
$allowed_filetypes = array ('.jpg','.png','.gif');

PHP
if(!in_array($ext,$alowed_filetypes))

переменная $alowed_filetypes не является массивом, $allowed_filetypes - является. разница - колличество буковок L в слове allowed

эх, не успел чутка, ну да ладно smile.gif



Спустя 6 минут, 18 секунд Grazor написал(а):
это ещё повезло, что ошибка выскочила, а то потом мучайся, отлаживай из-за одной буковки, может ещё и переписывать пришлось бы dry.gif

Спустя 6 минут, 57 секунд (22.04.2009 - 21:53) Gans1g написал(а):
во блин я слепой.. аахаха 20 минут смотрел код не заметил...эх мда..целый день примеры делаю видимо хватит...на сегодня=))) всем кто откликнулся спс



Спустя 4 минут, 5 секунд Gans1g написал(а):
пока вы еще тут может подругому можна как нибуть написать код..? по лучше..свашей стороны

Спустя 22 минуты, 46 секунд (22.04.2009 - 22:16) Grazor написал(а):
да, вроде, нормально. только у меня одно сомнение: если файл будет обзываться picture.JPG будет ли он загружен? думаю, надёжнее так:
PHP
if(!in_array(strtoupper($ext),$alowed_filetypes))


и ещё одно: в названии файла может использоваться точка "my.picture.jpg", а strpos найдёт первую точку unsure.gif



Спустя 5 минут, 51 секунд Grazor написал(а):
вот
Цитата
strrpos --  Возвращает позицию последнего вхождения символа

то есть
PHP
$ext substr($filenamestrrpos($filename,'.'), strlen($filename)-1);

Спустя 7 минут, 54 секунды (22.04.2009 - 22:24) Gans1g написал(а):
учту спс..возникла вот еще одна проблема пытаюсь записать все это в базу не выходит.. user posted image где пишеться сообщение что все ок там делаю запись
PHP
$q5 ="INSERT INTO SSM_GALLERY VALUES ('".$_FILES['userfile]['name']."','".$_POST['desc']."','".date("d-m-Y")."')
где пишу гадость? е выходит в смысле пуста в базе

Спустя 2 минуты, 16 секунд (22.04.2009 - 22:26) twin написал(а):
Вот это лишнее телодвижение:
PHP
<?
if(
filesize($_FILES['userfile']['tmp_name']) > $max_filesize)
Информация о размере файла есть в массиве $_FILES. Достаточно так:
PHP
<?
if(
$_FILES['userfile']['size'] > $max_filesize)

Вообще сделай так:
PHP
<?
print_r($_FILES);
первой строчкой скрипта, и узнаешь много интересного.



Спустя 1 минут, 44 секунд twin написал(а):
Апостроф пропустил, даже на подсветке видно.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.