Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Zapobieganie ponownemu uploadowi pliku, przy "Wstecz" na stronę odbierającą dane
Przemek1
post
Post #1





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 7.11.2005

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


Witam!
Jak zapobiec ponownemu przesłaniu pliku na stronę, która odbiera dane z formularza? Dla formularzy bez pola <input type="file"> postępowałem w następujący sposób:

1. Wysłanie formularza ze zmiennymi $_POST i flagą wypełnionego formularza
2. Serializacja $_POST przez skrypt odbierający, przed wysłaniem nagłówka
3. Wysłanie nagłówka z przekierowaniem przez Location ponownie do tego samego skryptu i wyzerowanie flagi wypełnionego formularza (żeby nie przekierować po raz kolejny)
4. Deserializacja $_POST i sytuacja wygląda tak jakby właśnie został wysłany formularz, a przeglądarka nie próbuje ponownie wysyłać danych dzięki wykonanemu przekierowaniu

Teraz pytanie jak to samo zrobić z zawartością $_FILES ? Albo jak inaczej zabezpieczyć się przed ponownym wysyłaniem plików przez przeglądarkę przy nawigacji dalej-wstecz?
Sądziłem, że serializacja $_FILES wystarczy, bo plik tymczasowy pozostanie dalej tam gdzie był załadowany, a serializowane $_FILES przechowa wszystkie parametry. Tymczasem $_FILES po deserializacji jest zawsze puste, nie wiem dlaczego.

Teraz zabezpieczam się tak, że zapisuję w sesji nazwy już odebranych plików i jak się powtórzy to wyświetlam komunikat. Ale oczywiście niepotrzebne przesyłanie ma nadal miejsce, a zabezpieczenie jest mało optymalne.

Czy ktoś wie jak się rozwiązuje taki problem?
Go to the top of the page
+Quote Post
Kuziu
post
Post #2





Grupa: Zarejestrowani
Postów: 743
Pomógł: 0
Dołączył: 11.11.2003
Skąd: Toruń

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


Najprościej to chyba z headerem.

Po uploadzie dajesz header'a na inny adres i jest git


--------------------
Słońce zachodzi ... kolejna noc nadchodzi ...
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 19.08.2025 - 19:53