![]() |
![]() ![]() |
![]() |
![]()
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? |
|
|
![]()
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 ...
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 19:53 |