swmikolaj21
30.05.2005, 11:51:17
Witam!
Chcialbym po zapisaniu do bazy danych usunac zmienna post z formularza, tak by np po odswiezeniu strony nie mozna bylo mozna bylo jeszcze raz zapisac tych samych danych...
unset na koncu nie pomaga bo jeszcze raz pobiera , usunac z tempa-ale jak??
Szukalem troche ale nie znalazlem odpowiedzi.....
Pozdrawiam i czekam na jakies wskazowki
Maciek
nospor
30.05.2005, 11:55:15
Sęk w tym, że odświerzenie powoduje powtórne wyslanie formularza. Usuwanie zmiennej tu nic nie da, gdyż jest ona na nowo wysyłana (tworzona). Musisz porobić jakieś zabezpieczenia, przed powtórnym wysyłaniem formularza
swmikolaj21
30.05.2005, 12:05:25
hmmm... no tak...ale jak??
crash
30.05.2005, 12:07:59
Na upartego możesz przeładować stronę, za pomocą
header" title="Zobacz w manualu PHP" target="_manual[b](Location: '.$_SERVER['PHP_SELF']);[b]
swmikolaj21
30.05.2005, 12:16:33
a to przeładowanie spowoduje ze....

? no bo na chlopski rozum to jeszcze raz pobierze z formularza....
revyag
30.05.2005, 12:42:59
Można odświeżyć stronę po stronie usera przy pomocy javascript. Wtedy dane nie zostanę ponownie wysłane.
Kod
<script type="text/javascript">window.location=document.URL;</script>
vala
30.05.2005, 12:44:18
a jak ktos ma wylaczone js to nie za bardzo to zadziala:)
revyag
30.05.2005, 13:12:29
Może inaczej skonstruuj wysyłanie formularza, zrób to bardzo user-friendly. Po naciśnięciu submita pokaże się komunikat że dane zostały wysłane i link do strony z formularzem. Trzeba liczyć na to że użytkownik postąpi w normalny sposób i kliknie link, a nie będzie odświeżał stronę.
Jeśli to nie wystarcza to trzeba usera przekierować na inną stronę i tyle.
Zajec
30.05.2005, 13:48:16
Zrób dodatkowe pole input type="hidden" z value=<php echo time();?>
Potem sprawdzasz czy istnieje wpis w bazie z
time = $_POST['time']
i
tresc = $_POST['tresc'] (przykładowo)
Jeżeli nie istnieje to dodajesz.
kszychu
30.05.2005, 14:10:22
Przekierowuj za pomocą header("Location: ......."). Cofanie tego nie powoduje ponownego wysyłania formularza.
NoiseMc
30.05.2005, 14:40:02
Też uważam, że powinieneś przekierować stronę za pomocą header ( 'Location:....' ).
Ewentualnie możesz wyświetlić komunikat, że dane zostały zapisane i za chwile nastąpi przekierowanie, takie rozwiązanie zastosowane jest np w forum phpBB lub XOOPS CMS.
swmikolaj21
30.05.2005, 14:41:44
Oki ! Dzieki!!
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.