Создание небольшого веб-сайта, который должен показывать несколько разных ТВ-шоу. У меня есть страница, которая должна позволять пользователю вводить новое имя телевизионной программы и изображение телевизионной программы.
По какой-то причине я получаю неопределенную ошибку индекса в строках: 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
Пожалуйста помоги
я запутался и не уверен, почему я получаю эту ошибку
любая информация будет полезна
Спасибо!
Вы никогда не удосужились проверить, была ли отправлена форма или файл был загружен. Вы просто безоговорочно выполняете код обработки формы.
Как минимум вам нужно что-то вроде этого:
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 инъекций, и также просто предполагаем, что запросы к БД никогда не потерпят неудачу.
Вы получаете доступ name
в посте, но так и должно быть title
как указано в коде вашей формы
$title=$_POST['title'];this should be title
Вы покидаете пустой индекс, поэтому добавьте индекс как photo
$pic=($_FILES['photo']['name']); you have not added any index here.