Неопределенный индекс не уверен, почему

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

По какой-то причине я получаю неопределенную ошибку индекса в строках: 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.";
}

?>

Сообщение об ошибке:

Неопределенный индекс: фотография в C: \ wamp \ www \ sky_coding \ upload.php на линии
45, 49 и 55 Неопределенный индекс: заголовок в
C: \ wamp \ www \ sky_coding \ upload.php в строке 48

Пожалуйста помоги
я запутался и не уверен, почему я получаю эту ошибку

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

0

Решение

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

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

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 инъекций, и также просто предполагаем, что запросы к БД никогда не потерпят неудачу.

2

Другие решения

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

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

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

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

По вопросам рекламы [email protected]