на странице есть текстовое поле и кнопка скачать. в текстовое поле пользователь вводит пароль который известен и строго фиксирован. После нажатия на кнопку (если пароль правильный) необходимо выдать файл на скачку как реализовать - вроде элементарно - но не получается <form action="" method="POST"> <input type="text" name="dolphins" id="dolphins"/> <input type="submit" name="submit" id="submit" value="Скачать" /> </form> а как проверить валидность и выдать файл на загрузку - не понятно
В переменной $_POST['dolphins'] находится введенное значение его и проверяй на соответствие паролю. Отдать файл 2 способа: 1) Тупо перенаправить на файл. Но тогда этот кто-то сможет дать прямую ссылку на файл (хотя если пароль строго фиксирован он может дать пароль). 2) Формировать заголовки и выдавать файл. для заголовков (в том числе переадресация) - header отдать файл - google (кстати вторая ссылка на этот форум) и readfile (в том числе комментарии)
да, ссылка прямая - просто такой способ скачать файл для наглядности начинаю потихоньку разбиратся Код (Text): <form action="check.php" method="POST"> в check.php - проверяю submit - если валидно то даю файл и редеректюсь обратно, не валидно просто редеректюсь
Код (Text): $file = 'demo.exe'; header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename='. basename($file)); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); header('Content-Length: ' . filesize($file)); ob_clean(); flush(); readfile($file, true); exit; Всё работает только одно но - с путями косяк - $file = 'demo.exe'; - ок $file = '1/demo.exe'; - не ок и даже если абсолютный путь указать всеравно - не ок - как быть ?