PHP backend validation?

Tags:    php validation oop html form

Hejsa,

Jeg er i gang med at udvikle et website hvor der tilhørende er en HTML-form jeg vil have noget validation på.

Jeg har en HTML form ("index.php"), hvis data bliver submited til ("back_end.php").
Her har jeg noget validation på diverse input felter fra HTML formen.

Lige nu har jeg en klasse med en masse validation funktioner som enten retunere true eller false. Yderligere har jeg oprettet et array hvor fejlen bliver lagt i.

Så jeg f.eks. kan lave til at ud printe samtlige fejl.
Fold kodeboks ind/udPHP kode 


Mit spørgsmål er ret simpel (håber jeg).
Hvad er den smarteste måde at sende brugeren retur til HTML-formen med diverse validation fejl.

Bruge sessions, GET eller noget helt andet?

Mvh Alex



Indlæg senest redigeret d. 30.04.2013 07:05 af Bruger #12793
Det er lidt hip-som-hap...

Gemmer du fejlkoderne i $_GET, kan brugeren genskabe fejlkoderne, uden dog nødvendigvis at der er sket en fejl. Bliver URLen med fejlkoderne linket til, fra et eller andet sted, kan dette opsnappes af Google, og dermed indekseres siden (det kan løses med NOINDEX).
Gemmer du det i session, skal brugeren tillade cookies via browseren (det gør de fleste). Du kan fejlkoder liggende i sessions længe, så det kræver altid clean-up procedurer. Benytter du flash-session-metoden, bliv dine beskeder kun være tilgængelig i første efterfølgende request. Men du undgår indekseringsproblemer.

Jeg ville bruge sessions/flash-beskeder. Det giver det mest rene billede til brugeren.



Har aldrig hørt om flash sessions før. Har du et link til noget information omkring dette?



Dette er en klump kode der vist kan klare det for dig... Kender det ikke: http://mikeeverhart.net/php/session-based-flash-messages/

Men flash sessions er vist en term jeg blot opfandt, lettere træt, i kampens hede. :) Men det nok mere, noget i stil med den artikel, jeg henviser til: "session baseret flash beskeder".



hvorfor ikke validere med et ajax kald før form submission, så evt. fejl bliver fanget og vist til brugeren før formen bliver submitted? Så behøver du ikke være nervøs for hvor du skal sende brugeren hen, da han aldrig forlader siden i tilfælde af fejl :)

jQuery kan helt sikkert hjælpe dig her. Blot et godt råd :)



100% server-side validering ved submit er altid nødvendig, da man efter et AJAX-kald kan manipulere data inden submit. Så reelt set, et brugernavn der ikke er valideres korrekt i ajax-kald, kan man alligevel sende via submit. Og hvad sker der så?

Ligeledes AJAX er konstrueret med JavaScript. Nogle klienter kan køre uden javascript, og så er der robotterne blot submitter i et væk.

Mange problemer fordi man tilsidesætter server-side validering. :o)



100% server-side validering ved submit er altid nødvendig, da man efter et AJAX-kald kan manipulere data inden submit. Så reelt set, et brugernavn der ikke er valideres korrekt i ajax-kald, kan man alligevel sende via submit. Og hvad sker der så?

Ligeledes AJAX er konstrueret med JavaScript. Nogle klienter kan køre uden javascript, og så er der robotterne blot submitter i et væk.

Mange problemer fordi man tilsidesætter server-side validering. :o)


Yep backend er et must.
Jeg tror jeg vil bruge sessions til at retunere fejlene i. Derefter give dem en max levetid.

Men der maa naesten vaere en smartere maade.



Du kunne jo bruge Laravel frameworkét eller CakePHP - sådan at du har en applikation bygget op i MVC. På den måde kan du jo bare lave et view hvor fejlene bliver smidt ind efter den har kørt funktionen.



t