![]() |
![]() ![]() |
![]() |
![]()
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ę 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 -------------------- ..::: Jak pomogłem to kliknij pomógł. Tak rzadko używacie tej opcji :( :::..
|
|
|
![]()
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 ![]() |
A nie zastanawiałeś się nad tym, by dane te przechowywać w bazie i tylko w razie potrzeby tworzyć z nich plik? Wtedy fizycznie na dysku go nie będzie, więc jedynie musiałbyś rozwiązać problem praw dostępu do tego pliku w bazie. No ale to jest też pewne obciążenie bazy zwłaszcza jeśli pliki będą duże. To tylko propozycja ale dla małych plików myślę, że sensowna.
-------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 5 Dołączył: 22.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 387 Pomógł: 66 Dołączył: 31.03.2005 Skąd: Kielce Ostrzeżenie: (0%) ![]() ![]() |
Wszystkie te dane są umieszczone w bazie MySQL.
Szablon składa się z wycinka produktów z bazy - czyli np. jak masz bazę no nie wiem, samochodów i ich ceny dla detalu, hurtu i dealerów to pobiera tylko same benzyniaki. W pętli zapisuję to do zmiennej już przyszykowanej do zapisu do pliku. I teraz - co zrobić żeby ta zmienna nie musiała być zapisana do pliku na serwerze tylko bezpośrednio na dysk twardy usera pomijając serwer. Bo ja znam sposób na pobranie pliku tylko jeśli jest on uprzednio zapisany na serwerze - a właśnie to chcę pominąć. Oczywiście nie wchodzi w grę print na ekranie, kopiuj i wklej ![]() pzdr header(); też nie bardzo bo nagłówki są już wysyłane - jest to plik includowany do index.php No chyba że przekaże to do osobnego pliku poprzez _POST i submit. Ale czy po przekazaniu nagłówka raz mogę potem skorzystać z: header("Location: index.php"); ? Bo jeśli nie to zostaje mi biała strona, która też nie wchodzi w grę. Proszę także o inne sugestie, spróbuję wykorzystać wszystkie możliwości. -------------------- ..::: Jak pomogłem to kliknij pomógł. Tak rzadko używacie tej opcji :( :::..
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Myślę, że najlepiej będzie sobie stworzyć plik php, który będzie wywoływany z odpowiednimi parametrami GET i wygeneruje na ich podstawie ów CSV. Plik ten będziesz wywoływał linkiem na stronie danego klienta czy kogoś uprawnionego. Tylko musisz się zastanowić jak ograniczyć dostęp do wywołania owego pliku. Tak by ktoś nie mógł, manipulując zmiennymi GET pobrać czegoś z bazy, czego nie powinien.
-------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 387 Pomógł: 66 Dołączył: 31.03.2005 Skąd: Kielce Ostrzeżenie: (0%) ![]() ![]() |
Tak, wygeneruje csv ale ten plik csv będzie musiał się gdzieś podziać i tutaj jest cały problem.
Ponieważ on się zapisze na serwerze, a niestety posiada poufne info., a ja nie mam potem możliwości sprawdzenia czy plik mogę usunąć i jak nie będzie już potrzebny to zostanie na serwerze do następnego wywołania - wtedy istnieje możliwość pobrania tego pliku przez nie uprawnione osoby. Jak zapisać go na dysk pomijając zapisanie go na serwerze ? -------------------- ..::: Jak pomogłem to kliknij pomógł. Tak rzadko używacie tej opcji :( :::..
|
|
|
![]()
Post
#7
|
|
![]() 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.
-------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 387 Pomógł: 66 Dołączył: 31.03.2005 Skąd: Kielce Ostrzeżenie: (0%) ![]() ![]() |
Wczoraj było już późno i nie wczytałem się dobrze w to co piszecie ale już... WSZYSTKO DZIAŁA TAK JAK CHCIAŁEM - dzięki i pzdr
Pomogliście ![]() pzdr Ten post edytował cudny 25.09.2009, 10:49:36 -------------------- ..::: Jak pomogłem to kliknij pomógł. Tak rzadko używacie tej opcji :( :::..
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 22.06.2025 - 11:19 |