PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
VadiKO
Отправлено: 30 Декабря, 2018 - 10:11:41
Post Id


Новичок


Покинул форум
Сообщений всего: 37
Дата рег-ции: Март 2016  


Помог: 0 раз(а)




Всех с наступающим!

Хочу записать тест с переменными в файл и скачать его по нажатию на ссылку, вот что получилось:

1. В файле index.php делаю include_once в том месте где должна появится ссылка на скачивание, include_once делаю для того, что в файле index.php было меньше кода:


PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. код код код...
  4. $x = 'red';
  5.  
  6. include_once "file.php";
  7.  
  8.  
  9. код код код...
  10. ?>
  11.  


2. Дальше файл file.php:

PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. $color = 'Ваш выбор'.$x;
  4.  
  5. $filename = 'ready.xml';
  6.  
  7. if ($_GET['down'] == $filename) {  
  8.  
  9. header('Content-Type: application/force-download');
  10. header('Content-Disposition: attachment; filename ='.$filename);
  11.  
  12.  
  13. echo $color;
  14.  
  15.  
  16. }  
  17. else {  
  18. echo "<br /><a href='?down=$filename'>ready.xml</a><br />";
  19. }
  20.  
  21. ?>


В этом варианте возникает проблема, переменная $x не передается в файл, там пусто...

Попробовал все сделать в файле index.php

PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. cod cod cod...
  4.  
  5. $x = 'red';
  6.  
  7. $color = 'Ваш выбор'.$x;
  8.  
  9. $filename = 'ready.xml';
  10.  
  11. if ($_GET['down'] == $filename) {  
  12.  
  13. header('Content-Type: application/force-download');
  14. header('Content-Disposition: attachment; filename ='.$filename);
  15.  
  16.  
  17. echo $color;
  18.  
  19.  
  20. }  
  21. else {  
  22. echo "<br /><a href='?down=$filename'>ready.xml</a><br />";
  23. }
  24.  
  25. cod cod cod....
  26. ?>
  27.  


В этом случае переменная приходит все отлично, но в файл записывается все что по коду выше выводится через echo.

Собственно нужна помощь, как в первом варианте сделать что бы переменная дошла, или как во втором варианте сделать что бы записало только то что нужно, а не все echo?

Спасибо всем кто откликнется!
 
 Top
Vladimir Kheifets
Отправлено: 01 Января, 2019 - 12:04:51
Post Id



Посетитель


Покинул форум
Сообщений всего: 408
Дата рег-ции: Март 2017  
Откуда: Германия, Бавария


Помог: 21 раз(а)




VadiKO пишет:
Всех с наступающим!

Хочу записать тест с переменными в файл и скачать его по нажатию на ссылку....
Собственно нужна помощь, как в первом варианте сделать что бы переменная дошла, или как во втором варианте сделать что бы записало только то что нужно, а не все echo?
Спасибо всем кто откликнется!


Добрый день и с Новым Годом!
Для примера взял свой файл HotelBookingReq.xml.
это index
Спойлер (Отобразить)

это file
Спойлер (Отобразить)

В include значение $x передаётся.
в браузере выдаётся сообщение см. скриншот
и закачивается xml-документ
Спойлер (Отобразить)

Удачи!
Прикреплено изображение (Нажмите для увеличения)
Untitled-1.jpg

(Отредактировано автором: 01 Января, 2019 - 12:07:31)

 
 Top
VadiKO
Отправлено: 01 Января, 2019 - 19:29:32
Post Id


Новичок


Покинул форум
Сообщений всего: 37
Дата рег-ции: Март 2016  


Помог: 0 раз(а)




Спасибо!

Но по вашему примеру у меня не происходит запись в файл, происходит вывод (echo) ссылки на скачивание и содержимого что должно быть записано в файл, по нажатию на кнопку файл скачивается, но файл пустой. Не понял

К тому же, значение переменной $color выводить не нужно, нужно ее просто записать в файл и дать возможность при желание скачать файл с содержимым переменной $color.

(Отредактировано автором: 01 Января, 2019 - 19:35:21)

 
 Top
Vladimir Kheifets
Отправлено: 02 Января, 2019 - 08:22:06
Post Id



Посетитель


Покинул форум
Сообщений всего: 408
Дата рег-ции: Март 2017  
Откуда: Германия, Бавария


Помог: 21 раз(а)




VadiKO пишет:
Спасибо!
Но по вашему примеру у меня не происходит запись в файл, происходит вывод (echo) ссылки на скачивание и содержимого что должно быть записано в файл, по нажатию на кнопку файл скачивается, но файл пустой. Не понял
К тому же, значение переменной $color выводить не нужно, нужно ее просто записать в файл и дать возможность при желание скачать файл с содержимым переменной $color.

Добрый день!
1. Если У вас выдаётся пустой файл, то попробуйте проверить адрес в в браузере.
Нужно проверить, в index.php не отправляется ли header раньше чем include_once "file.php";
У Вас, например, в коде строка 1 пустая, а стока 2 <?
Сообщения об ошибках у Вас выдаются?
Добавил пустую строку, как у Вас. Выдаются соощения:
Спойлер (Отобразить)

2.Не понятно:"дать возможность при желание скачать файл с содержимым переменной $color"
Возможно, Вам нужно в начале найти файл, содержащий переменную $color, а затем предлагать его скачать.
Удачи!

(Отредактировано автором: 02 Января, 2019 - 08:23:04)

 
 Top
VadiKO
Отправлено: 03 Января, 2019 - 12:27:49
Post Id


Новичок


Покинул форум
Сообщений всего: 37
Дата рег-ции: Март 2016  


Помог: 0 раз(а)




Протестировал сегодня еще раз, пишет ошибку:

Notice: Undefined index: down in /var/www/root/data/www/site.com/ file.php on line 4

вот эта строка не нравится ему:

PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3.  
  4. if ($_GET['down'] == $filename)
  5.  
  6. ?>


переменную с index.php передает, файл скачивает, но в файл записывает все содержимое что есть в файле index.php Огорчение
 
 Top
VadiKO
Отправлено: 07 Января, 2019 - 21:27:50
Post Id


Новичок


Покинул форум
Сообщений всего: 37
Дата рег-ции: Март 2016  


Помог: 0 раз(а)




В общем добился результата, в index.php:

PHP:
скопировать код в буфер обмена
  1. <?
  2. код код код...
  3.  
  4. $x = 'red';
  5.  
  6. echo "<a href='file.php?download&k=".$x."'>download</a>";
  7.  
  8. код код код...
  9. ?>


Дальше файл file.php:

PHP:
скопировать код в буфер обмена
  1. if(isset($_GET['download'])){
  2.        
  3.    if(isset($_GET['k']))
  4.         {
  5.                
  6.         if (isset($_GET['k'])) {$k = $_GET['k']; if ($k == '') {unset($k);}}
  7.                
  8.         $k = trim($_GET['k']);
  9.         $k = htmlspecialchars($k);
  10.         $k = mysql_escape_string($k);
  11.                
  12.         $color = 'Ваш выбор'.$k;
  13.  
  14.         $filename = 'ready.xml';
  15.        
  16.         header('Content-Type: application/force-download');
  17.         header('Content-Disposition: attachment; filename ='.$filename);
  18.        
  19.         echo $color;
  20.        
  21.         exit;
  22.  
  23.     }
  24.  
  25. }


Вот так вышло, возможно что-то не так и кто-то другой сделал бы по своему, но мой вариант работает и эффект достигнут.

Осталось правда решить вопрос с доступом, что бы без авторизации не качало, но это уже совсем другая история.
 
 Top
LIME
Отправлено: 08 Января, 2019 - 01:47:36
Post Id



Активный участник


Покинул форум
Сообщений всего: 10263
Дата рег-ции: Нояб. 2010  


Помог: 306 раз(а)




Если 6 строку убрать ничего не изменится


-----
DDD
 
 Top
VadiKO
Отправлено: 08 Января, 2019 - 11:09:18
Post Id


Новичок


Покинул форум
Сообщений всего: 37
Дата рег-ции: Март 2016  


Помог: 0 раз(а)




Спасибо! Улыбка
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB