Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Pobranie pliku bez zapisywania go na serwerze
cudny
post
Post #1





Grupa: Zarejestrowani
Postów: 387
Pomógł: 66
Dołączył: 31.03.2005
Skąd: Kielce

Ostrzeżenie: (0%)
-----


Witam

Właśnie jestem na ukończeniu projektu zamówień on line dla pewnej firmy i delikatnie mówiąc stanąłem w miejscu.
Zażyczyli sobie wprowadzanie zmian cen z plików csv.
Nie jest to większy problem.
Problemem jest utworzenie szablonu dla tego pliku.
W szablonie ma się znaleźć id klienta, id produktu i 3 różne jego ceny.
Chodzi mi tylko o bezpieczeństwo.
Aby utworzyć szablon muszę zapisać do niego ceny, których nikt nie może w żaden sposób przechwycić - wiadomo: tajemnica handlowa.
I tutaj leżę:
Zapisując taki plik na serwerze i umieszczając w nim dane muszę w .htaccess dać do katalogu większość uprawnień.
Potem daję
  1. <a href="plik/plik.csv">Pobierz plik</a>
i szablon pobrany ale wtedy do tego pliku mają dostęp wszyscy (oczywiście muszą o tym wiedzieć ale... od razu zakładam, że każdy chce mieć ten plik i zależy mi na zabezpieczeniu tego).
Tym bardziej, że nie zawsze ktoś kliknie na link "Pobierz plik" i wtedy w ogóle nie mam szansy na skasowanie zawartości.
Na początku index.php przecież nie dam unlink(); bo ktoś może skasować plik przed pobraniem.
Rozwiązaniem by było nie zapisywać pliku na serwerze tylko od razu na dysku usera.
Czy istnieje taka możliwość ?
Czy da się zapisać dane bezpośrednio ze zmiennej $daneDoPliku; na dysk twardy usera nie zapisując tego na serwerze ?
A może do ciacha i jakoś wyciągnąć je na dysk ?
Nigdy nie było mi nic takiego potrzebne - grzebę w googlach już ze 2h, manuala to mogę wyrecytować i nic nie ma.

Proszę o pomoc
Pzdr
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
thek
post
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Ale plik możesz generować w locie, bez jego zapisu na dysk. Dlatego wspominałem o skrypcie sparametryzowanym. Zauważ, że na tej samej zasadzie tworzysz strony dynamiczne. Masz tylko szablon i dane są wstawiane w locie na podstawie parametrów do GET. Choćby forum.php?topic=657 Przecież nie zapisujesz utworzonej tak strony na dysku. Strony wciąż się zmieniają, dochodzą nowe tematy i posty w nich. Czy każdy topic jest zapisywany jako strona na dysku? Nie, bo to stworzyłoby masę plików. Może ona się gdzieś scache'ować, ale nic więcej. Tak samo zrób z plikiem csv. Niech generuje się on w locie po kliknięciu w spreparowany link i jest wysyłany z odpowiednimi headerami wtedy prosto do przeglądarki usera. W ten sposób omijasz zapis na dysku bo dane ślesz wprost do przeglądarki użytkownika. Nie wiem jakie masz ustawienia tabel danych itp, ale musisz w takiej sytuacji jedynie zadbać o to, by przy zmianie parametrów ręcznych (grzebanie przez usera w parametrach GET) skrypt sprawdził czy aby dany csv może ta osoba wygenerować. Dlatego wspomniałem o systemie praw dostępu.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.12.2025 - 15:11