Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak wy sobie z tym radzicie?
Forum PHP.pl > Forum > PHP
kicaj
Czasami widze na swojej lub inntch stronach ze posty dodaja sie dwa razy takie same podrzad, wiem czym to jest spowodowane ale jak temu zaradzc?

Pola UNIQUE w MySQL'u nie moge wprowadzic - upszedzam!
DeyV
do każdego formularza dodajesz unikalny numer.
Następnie, po wysłaniu tegoż formularza zapisujesz ten numer w sesji, wcześniej sprawdzając, czy czasem już takiego nie ma w Twojej sesyjnej tablicy.
Jeśli nie ma - to ok, i wykonujesz odpowiedni kod obsługujący dany formularz.
Jeśli jednak już tam jest, to oznacza, że ktoś 2-krotnie nacisną submit - i wtedy zatrzymujesz skrypt, z odpowienim komunikatem.
id4
Cytat
Czasami widze na swojej lub inntch stronach ze posty dodaja sie dwa razy takie same podrzad, wiem czym to jest spowodowane ale jak temu zaradzc?

Pola UNIQUE w MySQL'u nie moge wprowadzic - upszedzam!


Ja robię to tak, że po wysłaniu forma zapisuje dane w bazie, po czym odświerzam stronę już bez zmiannych z forma - działa bardzo szybko i nie musi nic sprawdzać - dodatkowo do takiego rozwiązania dołączyć można komunikat, np. Dane zostały zapisane. Łatwy sposób i w miarę bezpieczny na odświerzanie - podczas odświerzania wypisuje komunikat a nie zapisuje ponownie.

np. wysłanie forma = url: index.php?action=submit
po zapisie w bazie = url: index.php?alert=12 - gdzie 12 to id komunikatu

To oczywiście bardzo prosty przykład, ale to rozwiązanie działa u mnie bez zarzutu nawet w systemie zaawansowanych statystyk czy systemach zarządzania treścią.
jono
ja po po wysłaniu posta przekierowuję za pomocą header() prosto do nowej odpowiedzi. W ten sposób nikt nie odświeży strony dodawania, bo nawet jej nie widzi.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.