estelle23
Новичок
Всем привет!
Купила курсы, начала изучать PHP но уже на втором ДЗ ступор и не понимание что от меня нужно. Ниже процитирую ДЗ и что в итоге у меня пока получается.
ПыСы: а тут "песочница" для таких как я есть? Ткните, а то я чего-то с ходу не нашла...
ДЗ:
Разработать скрипт скачивания документа .xls со страницы сервера http://task.manager/getxlsx.php?file_name=#имя файла# .
В окне сохранения документа, в поле “имя файла” должно по умолчанию подставится имя - #имя файла#.xls
Для успешной реализации задания вам понадобится:
1. Использовать суперглобальный массив $_GET[‘file_name’] - в ней будет хранится переданное имя файла.
2. Использовать header из лекции, а найти нужные заголовки необходимо самостоятельно!
3. Если в GET-параметре не передано название файла, страница должна выдать 404 ошибку!
Путем долгих копаний получилось следующее:
<?php
header('Allow: GET');
header('Content-type: application/vnd.ms-excel');
//function file_download($filename) {
//if (file_exists($filename)) {
//header('Location: ' . $filename);
// } else {
// header($_SERVER["SERVER_PROTOCOL"] . ' 404 Not Found');
// header('Status: 404 Not Found');
// }
// exit;
//}
header('Content-Disposition: attachment; filename=new_file.xls');
http_response_code(404);
?>
Ответ учителя:
Попробую перефразировать задание
Все осложняется 2 моментами:
1. не могу "вкурить" структуру написания (что и за чем и в каком порядке идет)
2. if/else мы еще не изучали, однако в ДЗ они уже должны быть...
Помогите в этом всем разобраться, пожалуйста!
Купила курсы, начала изучать PHP но уже на втором ДЗ ступор и не понимание что от меня нужно. Ниже процитирую ДЗ и что в итоге у меня пока получается.
ПыСы: а тут "песочница" для таких как я есть? Ткните, а то я чего-то с ходу не нашла...
ДЗ:
Разработать скрипт скачивания документа .xls со страницы сервера http://task.manager/getxlsx.php?file_name=#имя файла# .
В окне сохранения документа, в поле “имя файла” должно по умолчанию подставится имя - #имя файла#.xls
Для успешной реализации задания вам понадобится:
1. Использовать суперглобальный массив $_GET[‘file_name’] - в ней будет хранится переданное имя файла.
2. Использовать header из лекции, а найти нужные заголовки необходимо самостоятельно!
3. Если в GET-параметре не передано название файла, страница должна выдать 404 ошибку!
Путем долгих копаний получилось следующее:
<?php
header('Allow: GET');
header('Content-type: application/vnd.ms-excel');
//function file_download($filename) {
//if (file_exists($filename)) {
//header('Location: ' . $filename);
// } else {
// header($_SERVER["SERVER_PROTOCOL"] . ' 404 Not Found');
// header('Status: 404 Not Found');
// }
// exit;
//}
header('Content-Disposition: attachment; filename=new_file.xls');
http_response_code(404);
?>
Ответ учителя:
Попробую перефразировать задание
- Необходимо создать страницу (скрипт) на вашем веб сервере, которая будет доступна по адресу http://task.manager/getxlsx.php - эту часть вы уже сделали
- Если на при переходе на эту страницу был передан GET параметр file_name, например: http://task.manager/getxlsx.php?file_name=new_file, то в качестве ответа, сервер должен "как будто" отдать файл на скачивание, при этом имя этого файла должно быть new_file.xls
- Для того чтобы заставить браузер (клиента) думать, что сервер отдает файл на скачивание ему нужно установить заголовки, при этом реально отдавать никакой файл в теле ответа не нужно
- В случае если GET параметр не задан или значение file_name - пусто, то сервер должен установить 404 статус ответа
Все осложняется 2 моментами:
1. не могу "вкурить" структуру написания (что и за чем и в каком порядке идет)
2. if/else мы еще не изучали, однако в ДЗ они уже должны быть...
Помогите в этом всем разобраться, пожалуйста!