Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: funkcja header() i walidacja danych
Forum PHP.pl > Forum > PHP
edzio_max
Witam.

Napisałem sobie skrypt i prawie gdy go skończyłem napotkałem na dość mocny błąd, a dokładnie odświeżanie strony przez formularz jest wysyłany do bazy danych po każdym kliknięciu.

Otóż mój skrypt działa na takiej zasadzie na stronie "Y" mam formularz, a na stronie "X" mam ustawiona walidację danych ze strony "Y". Najpierw sprawdzane jest czy token został poprawnie przepisany, jeśli został to sprawdzane jest czy dane w formularzach istnieją i czy są wpisane w poprawnym formacie. Jeśli wszytko się zgadza skrypt dodaje dane do bazy i niestety tu jest problem bo po odświeżeniu dane znów zostają wysłane do bazy.

Myślałem już nad zastosowaniem funkcji header() lecz z tego co wiem ona musi zostać wykonana przed jakimi kolwiek innym funkcjami w skrypcie, a ja dalej mam dodawanie zmiennych do bazy.


Ostrzegam że jest początkującym użytkownikiem PHP to mój pierwszy taki skrypt.
Mam nadzieję że mi pomożecie bo juz 4 dni stoje i nic sad.gif
ADeM
Header nie musi być wywołana przed użyciem innych funkcji. Musi być wywołana przed wypluciem jakiegokolwiek tekstu na strone.
edzio_max
No to jak teraz to mam dodać jeżeli moja funkcja jest wpisana w ramy strony HTML a skrypt zwaraca echo ''; ?
ADeM
Może lepiej będzie jak pokażesz swój kod.
Możesz np. przenieść logikę na sam początek pliku, a HTML na końcu dać.
Inne wyjście: http://www.php.net/manual/pl/function.ob-start.php
cycofiasz
No to masz teraz problem bo mieszasz html z kodem php aplikacji.

Po co "token" skoro można floodować formularz? - luka

Co do headera to możesz zastosować buforowanie wyjścia (output buffering) lub zrobić przekierowanie w html
edzio_max
Ok. Zrobiłem sobie walidacje w JAVIE i używam tego header(). Tylko jak teraz zablokować ponowne wysłanie tych samych danych, gdyż po kliknięciu WSTECZ wszystkie pola formularza mam wypełnione i wystarczy tylko klikną WYŚLIJ i skrypt znów zostaje przerobniony. sad.gif
ShadowD
Zrób coś by zmienił się token...
erix
Cytat
Ok. Zrobiłem sobie walidacje w JAVIE i używam tego header()



2: Temat: odswiezanie strony zapis
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.