Заголовок PHP («Местоположение: ..») не работает правильно с аксиомами [дубликат]Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Заголовок PHP («Местоположение: ..») не работает правильно с аксиомами [дубликат]

Сообщение Anonymous »


Я столкнулся с проблемой с заголовками PHP (header("Location: ...")) в сочетании с формой HTML и Axios. Проблема возникает при использовании Axios для публикации данных формы. В моем PHP-скрипте у меня есть условие if, проверяющее, пусты ли входные данные формы. Когда для моей кнопки загрузки установлен тип «кнопка», и я заполняю все входные данные, все работает гладко, и данные успешно сохраняются в базе данных.

Однако, если я оставлю одно или несколько входных данных пустыми, в базу данных ничего не будет вставлено, и URL-адрес не изменится на «index.php?empty», как ожидалось. Как ни странно, когда тип кнопки меняется на «отправить», и я выбираю изображение, не заполняя текстовый ввод, URL-адрес правильно меняется на «index.php?empty». Тем не менее, если я заполняю текстовый ввод, не выбирая изображение, URL-адрес меняется на «direct.php», и в базе данных сохраняются только текстовые данные, исключая изображение.

Похоже, что заголовок PHP («Местоположение: ...») в этом сценарии работает не так, как ожидалось. Будем очень признательны за любые предложения или решения по решению этой проблемы. Спасибо всем за ваше время. (Обратите внимание, что я использую две библиотеки: axios и compressjs)
Загрузить пусть formData; функция compressImg() { const fileInput = document.getElementById('file'); константный файл = fileInput.files[0]; если (!файл) { возвращаться; } новый компрессор(файл, { качество: 0,6, максимальная ширина: 700, МаксВысота: 700, успех (результат) { formData = новые FormData(); console.log('Исходный размер:', file.size); console.log('Сжатый размер:', result.size); console.log("Имя изображения после сжатия", result.name); formData.delete('файл'); formData.append('файл', результат, result.name); }, ошибка (ошибка) { console.log(err.message); }, }); } функция загрузки данных() { если (formData) { formData.append('test', document.querySelector('[name="test"]').value); axios.post('direct.php', formData).then(() => { console.log('Успешная загрузка'); console.log(formData); }); } еще { console.log('Нет данных для загрузки'); } } $compressedImage = $_FILES['file']; $тест = $_POST['тест']; if(empty($compressedImage) || пусто($test)){ header("Местоположение: index.php?пустой"); } еще { echo "Исходное имя файла: " . $compressedImage['имя'] . "
"; echo "Исходный размер файла: " . $compressedImage['размер'] . "
"; $targetDir = 'изображение/'; $targetFile = $targetDir. basename($compressedImage['name']); move_uploaded_file($compressedImage['tmp_name'], $targetFile); echo "Имя перемещенного файла: " . $compressedImage['имя'] . "
"; echo "Размер перемещенного файла: " . размер файла ($targetFile) . "
"; $sql = "ВСТАВИТЬ В учетную запись (рис., тест) ЗНАЧЕНИЯ (?, ?)"; $stmt = $conn->prepare($sql); // Обновляем строкуbind_param, включив в нее оба заполнителя $stmt->bind_param("сс", $targetFile, $test); $stmt->выполнить(); $stmt->закрыть(); $conn->закрыть(); }
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»