![]() |
![]() |
![]()
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? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 11:02 |