23. marts 2011 - 18:37
Der er
7 kommentarer og 1 løsning
Felter er tomme ved fejlbesked
Hej Eksperter, Jeg har nogle tekstfelter jeg validerer på denne måde: if($_POST[kategorinavn] == "") { header("Location: opretkategori.php?fejl=1"); die(); } if($_POST[sortering] == "") { header("Location: opretkategori.php?fejl=2"); die(); Hvis man så ikke har udfyld 'sortering', og bliver sendt tilbage med fejlbesked - så er 'kategorinavn' også tomt og man skal starte forfra. Hvordan kan jeg undgå dette? De bedste hilsner, Martin
Annonceindlæg fra Infor
23. marts 2011 - 18:44
#1
Du kan f.eks. vælge at gemme data i en session. Så kan du hente dataene frem derfra.
23. marts 2011 - 18:45
#2
Send kategorien med fra forrige side så du sender videre sådan her: if($_POST[sortering] == "") { header("Location: opretkategori.php?fejl=2&kategori=".$_POST['kategori']); die();
24. marts 2011 - 19:10
#3
Det virker umiddelbart ikke for mig? Kan godt se at jeg gav udtryk for at der kun var to felter, men har flere, og derfor vil denne ikke virke (tror jeg). Den stopper jo ved første fejl, så er der vel kun et felt som "bliver husket"? Findes der ikke en anden måde?
26. marts 2011 - 22:23
#4
prøv evt dette så: if($_POST[sortering] == "") { header("Location: opretkategori.php?fejl=2&".http_build_query($_POST); die(); så henter du bare dine værdier igen med $_GET
30. marts 2011 - 15:08
#5
Kære apocs, DU ER EN STJERNE!! Det virker fuldstændig perfekt - tusinde tak!
30. marts 2011 - 15:22
#6
Så lidt da :) lige en hurtig mere... nu ved jeg ikke hvordan du laver dit check, men en nem måde kunne jo være: <?php foreach($_POST as $feltnavn => $feltvaerdi){ if(empty(trim($feltvaerdi))){ $error_description = $feltnavn.' kan ikke være tomt - prøv igen'; header('Location: opretkategori.php?error=1&err_desc='.urlencode($error_description).'&http_build_query($_POST)); } // Her kunne det måske være en idé at beskytte dine data, hvis de skal i en db: $feltnavn = mysql_real_escape_string($feltvardi); // Kræver tidl. sat connection } ?> Ovenstående kræver dog, at du har nogle "pæne" feltnavne Men det giver dig friheden til at benytte dine egne feltnavne senere i koden, uden at bruge $_POST-arrayet :) Nu kan du tilgå værdien i $_POST['kategorinavn'] ved bare at kalde $kategorinavn
30. marts 2011 - 15:23
#7
Header skal self. være header('Location: opretkategori.php?error=1&err_desc='.urlencode($error_description).'&'.http_build_query($_POST)); i stedet for :)
30. marts 2011 - 16:05
#8
Det ser jeg lige på :-) Endnu engang tak!
Vi tilbyder markedets bedste kurser inden for webudvikling