Formular validering

Tags:    php

Jeg skal have lavet validering på nogle formularer, så man ikke kan sende tomme felter afsted.

Jeg har bla. denne supportformular:

<form action="supportmail.php" method="post">
<table>
<tr><td>Dit navn: </td><td><input type="text" name="navn"></td></tr>
<tr><td>Din E-mail: </td><td><input type="text" name="e-mail"></td></tr>
<tr><td>Mail: </td><td><textarea rows="5" cols="30" name="mail"></textarea></td></tr>
<tr><td colspan="2"><input type="submit" value="send"></td></tr>
</table>
</form>

Hvordan får jeg den til at sætte en stjerne ud for det felt der mangler at blive udfyldt samt en tekst over formularen der forklarer fejlen?

Og hvis alt bliver udfyldt korrekt skal den bare udføre methodhandlingen til supportmail.php..

Feltet navn må ikke være tomt.
Feltet email må ikke være tomt og skal indeholde @ og et . efterfulgt af max 3 bogstaver.
Feltet mail må ikke være tomt.

Udover den skal jeg have lavet noget til password, hvor man skal indtaste et password to gange, og så bliver man ikke sendt videre hvis de to passwords ikke er ens.

Nogen der kan give mig et lynkursus i den slags formularvalidering? :)



4 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
Sorter efter stemmer Sorter efter dato
1: du kan tjekke om felter er tomme ved at gøre sådan her:

If(empty($_POST['navn'])){
$_SESSION['error1'] = 1;
}

og så på siden der skriver det ud:

if($_SESSION['error1'] == 1){
Print "Du har ikke skrevet noget i feltet navn!";
}

og ved felterne:
..

Navn:<? if($_SESSION['navn'] == 1){ print "*";}?><input type='text' name='navn'>

...

til at tjekke password:

if($_POST['pass1'] == $_POST['pass2']){
næste handling
} else {
print "De to password var ikke ens!!";
}


noget i stil med det burde du :D



Ok.. Men den skal jo kun skifte side hvis alle felter er udfyldt korrekt..

Mangler der et felt skal den jo blive på siden og udskrive fejlen ved det formular felt, som brugeren ikke har udfyld



Ok.. Men den skal jo kun skifte side hvis alle felter er udfyldt korrekt..

Mangler der et felt skal den jo blive på siden og udskrive fejlen ved det formular felt, som brugeren ikke har udfyld


Du skal bare sætte det sammen i en If(); altså:

if($_POST['submit']){
If(empty($_POST['navn'])){
$_SESSION['error1'] = 1;
Header("Location: dinside.php");
} elseif(empty($_POST['email'])){
$_SESSION['error2'] = 1;
Header("Location: dinside.php");
}...osv
Header("Location: ok_side.php");
}




Ok.. Men den skal jo kun skifte side hvis alle felter er udfyldt korrekt..

Mangler der et felt skal den jo blive på siden og udskrive fejlen ved det formular felt, som brugeren ikke har udfyld


Så skal du have fat i noget JavaScript!

MH.

The-Freak

Livet er for kort til at kede sig.
blog: http://laslego.frac.dk



t