mysql — Мои файлы загружаются с неправильными именами. Пожалуйста, помогите мне исправить переполнение стека

Поэтому у меня есть скрипт для загрузки видеофайла, и он почему-то не работает. Переменные id, firstname и lastname взяты из другого сценария PHP, который извлекает значения из базы данных и открывает этот сценарий загрузки с переменными в URL.

Итак, проблема. Пока все работает, но когда файлы загружаются, все они называются -audio.wav и -video.webm. Пожалуйста, помогите, потому что у меня были огромные проблемы с этим, и это решило бы большую проблему.

Скрипт загрузки:

<?php
$id = $_POST['id'];
$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];

$fileNameVideo = $firstname.$lastname."-video.webm";

$filePathVideo = 'videos/' . $fileNameVideo;

if (!file_exists($filePathVideo)) {
echo "<h1>Error Downloading ".$fileNameVideo."     ".$php_errormsg."</h1><br>";
return;
}

header("Content-disposition: attachment; filename=" . $fileNameVideo);
header("Content-type: application/pdf");
readfile($filePathVideo);

echo "<h1>".$fileNameVideo." Downloaded</h1><br>";

?>

Скрипт для открытия страницы загрузки:

<?php
include 'upload/connection.php';
$conn = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
if (!$conn) {
die("CONNECTION ERROR:  " . mysql_error());
}

$db_selected = mysql_select_db(DB_NAME, $conn);
if(!$db_selected) {
die( DB_NAME .' is not available. ERROR: '. mysql_error());
}
$result = mysql_query("SELECT id, fullname, grade, email, sendemail, send, invid, firstname, lastname FROM info WHERE invid = 1 ORDER BY id DESC");
while ($row = mysql_fetch_array($result)) {
$id = $row{'id'};
$firstname = $row{'firstname'};
$lastname = $row{'lastname'};

echo "<script>window.open('download-video.php?id=".$id."&firstname=".$firstname."&lastname=".$lastname."', '_blank');window.open('download-audio.php?id=".$id."&firstname=".$firstname."&lastname=".$lastname."', '_blank');</script>";
}
mysql_close();
?>

-2

Решение

$firstname а также $lastname не установлены в сценарии загрузки, они должны быть

$_GET['firstname']

а также

$_GET['lastname']

поскольку они являются частью URL, вы используете суперглобальный массив $ _GET. не $ _POST

2

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

Я не уверен. Вы повторили переменные после извлечения из базы данных. Потому что я чувствую, что это нужно изменить

       $id = $row{'id'};
$firstname = $row{'firstname'};
$lastname = $row{'lastname'};

В

       $id = $row['id'];
$firstname = $row['firstname'];
$lastname = $row['lastname'];

Пожалуйста, объясните ошибку или вы попытались повторить переменные после извлечения из базы данных.

0

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