Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Не могу разрбраться почему выводит ошибку Notice
 
 автор: shmel79   (19.12.2008 в 11:26)   письмо автору
 
 

Здравствуйте, народ. Помогите пожалуйста разобраться почему выводит ошибку. Есть форма добавления новой услуги в раздел (new_trans.php) и есть обработчик информации(add_trans,php)

new_trans.php


<form  method="POST" action="add_trans.php" enctype="multipart/form-data">>
<input type="hidden" name="MAX_FILE_SIZE" value="100000" />

           <p>
           <label>Группа:<br>


<select name='group'>
        <option value='0'>
<?
$rows 
mysql_query('SELECT * FROM uslug;');
while(
$row=mysql_fetch_array($rows)){
echo 
'<option value="'.$row[id].'">'.$row[title];
}
?>
</option>
</select>
</label>
               

                </p>
         <p>
           <label>Название траспорта: <br>
            <input  name="name" type="text"  size="45"></input>
        </label>
         </p>
         <p>
           <label>Год выпуска <br>
            <input  name="year" type="text"  size="45"></input>
        </label>
         </p>
         <p>
           <label>Мест в транспорте: <br>
            <input  name="mest" type="text"  size="45"></input>
        </label>
         </p>
              <p>
<label>Опции траспорта:<br>
           <textarea name="option" cols="60" rows="5" id="text"></textarea>
          </label>
        </p>
        <p>
                   <label>Цена аренды: <br>
            <input  name="arenda" type="text"  size="45"></input>
        </label>
         </p>
      <p>
                 <label>Цена на Трансфер (3+1): <br>
            <input  name="transfer" type="text"  size="45"></input>
        </label>
         </p>
 <p>
          <label>Загрузить фото:<br>
      <input name="filename" size="45" type="file" >
      </label>
      </p> 
        <input name="id" type="hidden" value="$myrow[id]">
          <p>
         </p>
      <p><input type="submit" value="Редактировать"></p><br>
      </form>



и файл обработчик (add_trans.php)


if (isset($_POST['filename']))                {$filename = $_POST['filename']; if ($filename == '') {unset($filename);}  }
if (isset($_POST['group']))               {$usl_id = $_POST['group']; if ($usl_id == '') {unset($usl_id);} }
if (isset($_POST['photo']))               {$photo = $_POST['photo']; if ($photo == '') {unset($photo);} }
if (isset($_POST['name']))                {$name = $_POST['name']; if ($name == '') {unset($name);}  }
if (isset($_POST['year']))                {$year = $_POST['year']; if ($year == '') {unset($year);}  }
if (isset($_POST['mest']))                {$mest = $_POST['mest']; if ($mest == '') {unset($mest);}  }
if (isset($_POST['option']))                {$option = $_POST['option']; if ($option == '') {unset($option);}  }
if (isset($_POST['arenda']))                {$arenda = $_POST['arenda']; if ($arenda == '') {unset($arenda);}  }
if (isset($_POST['transfer']))                {$transfer = $_POST['transfer']; if ($transfer == '') {unset($transfer);}  }
if (isset($_POST['id']))                      {$id = $_POST['id'];}

<?php

/* Начало. Скрипт добавления фото.*/

   
if($_FILES["filename"]["size"] > 1024*10*1024)
   {
     echo (
"Размер файла превышает 10 мегабайт");
     exit;
   }
   if(
copy($_FILES["filename"]["tmp_name"],
     
"http://fla/image/".$_FILES["filename"]["name"]))
   {
     echo(
"<b>Файл успешно загружен!</b><br><br>");
     echo(
"<b>Характеристики файла:</b><br>");
     echo(
"<b>Имя файла:</b> ");
     echo(
$_FILES["filename"]["name"]);
     echo(
"<br><b>Размер файла (кб.):</b>  ");
     echo(
$_FILES["filename"]["size"]);
      echo(
"<br><b>Тип файла:</b> ");
     echo(
$_FILES["filename"]["type"]);
$photo=$_FILES["filename"]["name"];    
 
     
    } 

        else {
      echo(
"<p><b>Ошибка загрузки файла...</b>");
      echo(
"<br><b>Причина:&nbsp;</b>");
     if(
$_FILES["filename"]['error'] == 1)
     {
     echo (
"загружаемый файл превышает размер, установленный директивой upload_max_filesize в файле настроек php.ini");
     }
      if(
$_FILES["filename"]['error'] == 2)
     {
     echo (
"загружаемый файл превышает размер, установленный элементом MAX_FILE_SIZE формы html");
     }
      if(
$_FILES["filename"]['error'] == 3)
     {
     echo (
"файл был загружен частично");
     }
      if(
$_FILES["filename"]['error'] == 4)
     {
     echo (
"Файл не был загружен ");
     }

   }
   
/* Конец. Скрипт добавления фото.*/

if (isset($usl_id) && isset($name) && isset($year) && isset($mest) && isset($option)  && isset($arenda) && isset($transfer)  && isset($photo))
{
/* Здесь пишем что можно заносить информацию в базу */
$result mysql_query ("INSERT INTO car (`usl_id`,`name`,`year`,`mest`,`option`,`arenda`,`transfer`,`photo`) VALUES ('$usl_id','$name','$year','$mest','$option','$arenda','$transfer','$photo')"); 

if (
$result == 'true') {echo "<p>Транспорт успешно добавлен в базу.</p> " ;  }
else {echo 
"<p>Транспорт не добавлен в базу.</p>";}
}

           
else 

{
echo 
"<p>Транспорт  не добавлен в базу.<br> <b>Причина: </b>Заполнены не все поля. </p>";
}

           
?>    



И на обработчике выдает ошибку... :
Notice: Undefined index: filename in ПУТЬ.. строка

Он не может найти передаваемую переменную... почему? Вроде форма передает... В чем возможна проблема?

  Ответить  
 
 автор: Николай2357   (19.12.2008 в 11:30)   письмо автору
 
   для: shmel79   (19.12.2008 в 11:26)
 

Вы написали столько букаф, но почему то остановились на самом интересном.
Notice: Undefined index: filename in ПУТЬ.. строка??????

  Ответить  
 
 автор: shmel79   (19.12.2008 в 11:39)   письмо автору
 
   для: Николай2357   (19.12.2008 в 11:30)
 

Выдает ошибки в строках:

Notice: Undefined index: filename in :

<?
   
if($_FILES["filename"]["size"] > 1024*10*1024)


   if(
copy($_FILES["filename"]["tmp_name"],


     
"http://fla/image/".$_FILES["filename"]["name"]))


     if(
$_FILES["filename"]['error'] == 1)
     if(
$_FILES["filename"]['error'] == 2)
     if(
$_FILES["filename"]['error'] == 3)
     if(
$_FILES["filename"]['error'] == 4)
?>

  Ответить  
 
 автор: Николай2357   (19.12.2008 в 11:52)   письмо автору
 
   для: shmel79   (19.12.2008 в 11:39)
 

Во первых не нужно пользоваться функцией copy, чтоб не было проблем, пользуйтесь move_uploaded_file()
Во вторых, зря Вы пишете разные кавычки вот тут:
<?
if($_FILES["filename"]['error'] == 4)

А в третьих, нельзя указывать абсолютный путь:
<?
"http://fla/image/".$_FILES["filename"]["name"])

  Ответить  
 
 автор: shmel79   (19.12.2008 в 12:00)   письмо автору
 
   для: Николай2357   (19.12.2008 в 11:52)
 

Ок.. ну проблема-то не в этом. Почему-то не может найти filename.. толи не передается.... хотя вроде в форме указано что filename переменная передается в обработчик... и там выводиться в photo.. И значение photo уже заноситься в базу. А выдает эти Notice...

  Ответить  
 
 автор: Николай2357   (19.12.2008 в 14:16)   письмо автору
 
   для: shmel79   (19.12.2008 в 12:00)
 

Плюньте вы на вывод ошибок, думаете юзеру очень интересно, почему не загружено? Последуйте совету sim5, проверьте на отсутствие ошибок, потом пишите файл на сервер. А вывести можно просто, "ошибка загрузки, попробуйте ещё раз." к примеру. К тому же вторая ошибка у Вас дублируется. А если есть ошибка, то и нотисы не заставят себя ждать, надо это Вам?

  Ответить  
 
 автор: sim5   (19.12.2008 в 11:58)   письмо автору
 
   для: shmel79   (19.12.2008 в 11:39)
 

А во-первых, надо сперва удостовериться, что $_FILES["filename"]['error'] = 0, а уже затем во-вторых - проверять размеры и т.п...

  Ответить  
 
 автор: shmel79   (19.12.2008 в 12:59)   письмо автору
 
   для: sim5   (19.12.2008 в 11:58)
 

Ок.. ну проблема-то не в этом. Почему-то не может найти filename.. толи не передается.... хотя вроде в форме указано что filename переменная передается в обработчик... и там выводиться в photo.. И значение photo уже заноситься в базу. А выдает эти Notice...

  Ответить  
 
 автор: sim5   (19.12.2008 в 14:56)   письмо автору
 
   для: shmel79   (19.12.2008 в 12:59)
 

А вы вместо этого длинного кода напишите проще: print_r($_FILES); Получаете файл?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования