Вопрос на основе курса "Авторизация и регистрация на чистом PHP. Автор успешно демонстрирует загрузку изображения из формы: PHP: <label>Изображение профиля</label> <input type="file" name="avatar"> Затем в обработчике прописывается путь в папку на компьютере: PHP: $path = 'uploads/' . time() . $_FILES['avatar']['name']; if (!move_uploaded_file($_FILES['avatar']['tmp_name'], '../' . $path)) { $response = [ "status" => false, "type" => 2, "message" => "Ошибка при загрузке аватарки", ]; echo json_encode($response); } После этого изображение (выделено красным) вместе с другими данными отправляется в базу MYSQL: PHP: mysqli_query($connect, "INSERT INTO `users` (`id`, `lastname`, `name`, `patronymic`, `login`, `phone`, `email`, `password`, `avatar`) VALUES (NULL, '$lastname', '$name', '$patronymic', '$login', '$phone', '$email', '$password', '$path'; ЭТО ВСЕ РАБОТАЕТ. Но у меня дополнительная задача. Мне нужно загрузить не одно, а два и более изображения из разных полей формы и, соответственно, в разные поля таблицы MYSQL. Например, помимо изображения с именем "avatar" нужно загрузить еще изображение с именем "dantar". Разумеется, поле с этим именем в MYSQL приготовлено. Итак, пишу код формы: PHP: <label>Изображение профиля</label> <input type="file" name="avatar"> <label>Второе изображение</label> <input type="file" name="dantar"> В обработчике прописываю пути в папку: PHP: $path = 'uploads/' . time() . $_FILES['avatar']['name']; if (!move_uploaded_file($_FILES['avatar']['tmp_name'], '../' . $path)) { $response = [ "status" => false, "type" => 2, "message" => "Ошибка при загрузке аватарки", ]; echo json_encode($response); $path2 = 'uploads/' . time() . $_FILES['dantar']['name']; if (!move_uploaded_file($_FILES['dantar']['tmp_name'], '../' . $path2)) { $response = [ "status" => false, "type" => 2, "message" => "Ошибка при загрузке аватарки", ]; echo json_encode($response); Пытаюсь отправить оба изображения в базу: PHP: mysqli_query($connect, "INSERT INTO `users` (`id`, `lastname`, `name`, `patronymic`, `login`, `phone`, `email`, `password`, `avatar`, `dantar` VALUES (NULL, '$lastname', '$name', '$patronymic', '$login', '$phone', '$email', '$password', '$path', '$path2')"); И НИЧЕГО НЕ ПОЛУЧАЕТСЯ!!! Регистрация не проходит. Обоих картинок нет ни в папке, ни в базе. Помогите, чем сможете, уважаемые программисты. Кстати, к общему коду в исходнике прикреплен скрипт, вот фрагмент по первому изображению: Код (Text): let avatar = false; $('input[name="avatar"]').change(function (e) { avatar = e.target.files[0]; }); Как правильно прописать здесь второе изображение? ЗАРАНЕЕ БЛАГОДАРЕН!
Используй ббкоды php или code чтобы оформить код. Один раз я сделал это для тебя, во второй раз забаню и удалю тему. --- Добавлено --- НИЧЕГО НЕ ПОЛУЧАЕТСЯ — это не описание. есть какая-то ошибка, например что у тебя фигурные скобки непарные, открывающих больше чем закрывающих. Или о том что у тебя ошибка в SQL - не хватает закрывающей скобки перед VALUES. --- Добавлено --- Посмотри как надо отлавливать ошибки: https://phpfaq.ru/debug Как выводить ошибки, возникающие при неправильном запросе MySQL можешь посмотреть в примерах документации: https://www.php.net/manual/ru/function.mysql-query.php
заметки на будущее: - вы отправляете не изображения а путь до них, - при INSERT не надо писать NULL в id с автоинкрементом ... просто уберите это поле из запроса - отлаживайте запросы. запрос сформируйте в переменную и выведете его - вот и увидите что не так с запросом а вообще - тут кусок, там кусок... а логики и не видно .. может у вас до запроса то и не доходит дело насчет js - все ж логично Код (Javascript): $('input[name="dantar"]').change(function (e) { dantar= e.target.files[0]; }); только опять же непонятно где потом этот dantar использовать и зачем он
Изначально код пишу не сам. Сейчас попытался реализовать эту же идею на основе другого исходника. Теперь уже в базу данных уходят два пути к изображениям, но ОДИНАКОВЫЕ (первое и его копия), хотя в форме изображения записаны с разными именами. И переменные путей тоже разные. Ни каких ошибок не получаю, просто по логике не могу понять, почему так. Уверен, что развязка простая. В PHP абсолютный новичок, но если наведете на правильную мысль, дальше сам смогу справиться.