2015-10-28 3 views
0

Создание небольшого веб-сайта, который должен показывать несколько различных телевизионных шоу. У меня есть страница, которая должна позволять пользователю вводить новое имя программы tv и изображение программы tv.Неопределенный индекс не уверен, почему

По какой-то причине им получить неопределенный ошибка индекса на линии: 41, 44, 45 и 52. Код является ниже: тзд

<form action="upload.php" method="POST" enctype="multipart/form-data"> 
    Programme Title: <input type="text" name="title"> </br> 
    Select photo to upload:<input type="file" name="photo" id="photo"> <br/> 
    <input type="submit" value="Upload" name="submit"> 
</form> 

<?php 

//This is the directory where images will be saved 
$target = "images/"; 
$target = $target . basename($_FILES['photo']['name']); --- ERROR line 41 

//This gets all the other information from the form 
$title=$_POST['name']; --- ERROR line 44 
$pic=($_FILES[' ']['name']); --- ERROR line 45 


//Writes the information to the database 
mysqli_query($mysqli, "INSERT INTO programmes VALUES ('', '$title', '', '$pic')") ; 

//Writes the photo to the server 
if(move_uploaded_file($_FILES['photo']['tmp_name'], $target)) --- ERROR line 52 
{ 

//Tells you if its all ok 
echo "The file ". basename($_FILES['uploadedfile']['name']). " has been uploaded, and your information has been added to the directory"; 
} 
else { 

//Gives and error if its not 
echo "Sorry, there was a problem uploading your file."; 
} 

?> 

Ошибка:

Undefined индекс: фото в C : \ WAMP \ WWW \ sky_coding \ upload.php на линии 45, 49 и 55 Undefined индекс: название в C: \ WAMP \ WWW \ sky_coding \ upload.php на линии 48

Пожалуйста, помогите im confused и не уверены, почему im получает эту ошибку

вся информация будет полезной спасибо!

+1

Пожалуйста, отметьте линий. –

+0

@NiranjanNRaju Как пометить линии? – Tman

+0

просто напишите строку там, как 'error line' в комментариях –

ответ

2

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

Как минимум вам нужно что-то вроде этого:

if ($_SERVER['REQUEST_METHOD'] == 'POST') { 
    // form was submitted 
    if (isset($_FILES['photo'])) { 
     if ($_FILES['photo']['error'] === UPLOAD_ERR_OK) { 
       ... file was successfully uploaded, process it 
     } else { 
       die("File upload failed with error " . $_FILES['photo']['error']); 
     } 
    } 
    etc... etc... etc... 
} 

Вы также уязвимы для sql injection attacks, а также просто предполагая, что DB запросы никогда не подведет.

+0

Очень хорошие моменты для рассмотрения – Drew

+0

Да, глупая ошибка с моей стороны. Это удалось получить все, работая – Tman

0

Вы обращаетесь name в пост, но это должно быть title, как это предусмотрено в вашем коде формы

$title=$_POST['title'];this should be title 

Вы уезжаете пустой индекс, поэтому добавьте индекс в photo

$pic=($_FILES['photo']['name']); you have not added any index here. 
+0

Это неподвижное изображение дает неопределенную ошибку индекса для «фото» и «title» – Tman

+0

Не могли бы вы обобщить то, что вы цитируете? Это нарушает правила публикации проводки stackoverflow. – holms

+0

Простите, что вы имеете в виду? – Tman

Смежные вопросы