Avatar billede foxmulder58 Praktikant
25. oktober 2005 - 21:45 Der er 30 kommentarer og
1 løsning

validering af felter

hej jeg har følgende formular:


<---------------------------------------->

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<head>
<title> Tilmelding Ledelseslinien </title>
<style type="text/css">

body{
  font-family:verdana;
 

}
</style>
</head>
<body>
<small>Felter med * skal udfyldes.</small>
<table>
<tr>
<td>

<form method="post" action="tilmelding_ledelse.php">
CPR nr. :</td><td><input type="text" name="efternavn" size="15">(xxxxxx-xxxx)</td>
</tr>
<tr>
<td>

Efteravn: </td><td><input type="text" name="efternavn" size="40"><br/>
</td>
</tr>
<tr>
<td>
Fornavn:</td><td> <input type="text" name="navn" size="40"><br/>
</td>
</tr>
<tr>
<td>

Adresse: </td><td><input type="text" name="adresse" size="20"><br/>
</td>
</tr>

<tr>
<td>

Post nr:</td><td> <input type="text" name="postnr" size="15"><br/>
</td>
</tr>
<tr>
<td>
by: </td><td><input type"text" name="by" size="15"> <br/>
</td>
</tr>




</table>
<input type="submit" value="send">
</form>


<---------------------------------------------------->



Kan man i PHP sørge for at visse felter SKAL udfyldes?
Avatar billede foxmulder58 Praktikant
25. oktober 2005 - 21:46 #1
nej hov det var ikke min PHP fil!
Avatar billede foxmulder58 Praktikant
25. oktober 2005 - 21:46 #2
<html>
<head>
<title> Tilmelding Ledelseslinien </title>
</head>
<style type="text/css">

body{
  font-family:verdana;
  size:9px;
}

</style>

<body>
<?

$besked = "Efternavn: ".$_POST['efternavn']."\n\n";
echo "Efternavn: ".$_POST['efternavn']."<br />";

$besked .= "Navn: ".$_POST['navn']."\n\n ";
echo "Navn: ".$_POST['navn']."<br />";

$besked .= "Adresse: ".$_POST['adresse']."\n\n ";
echo "Adresse: ".$_POST['adresse']."<br />";

$besked .= "Postnr: ".$_POST['postnr']."\n\n ";
echo "postnr: ".$_POST['postnr']."<br />";


$besked .= "by: ".$_POST['by']."\n\n ";
echo "postnr: ".$_POST['by']."<br />";






mail("madsns@gmail.com", "Tilmelding_Ledelse", $besked, "From: mail@domain.dk");
?>


</body>
</html>
Avatar billede jaw Nybegynder
25. oktober 2005 - 21:47 #3
Ja, men hvilke felter? Og på en speciel måde?
Avatar billede foxmulder58 Praktikant
25. oktober 2005 - 21:50 #4
ja felterne skal bare være udfyldte du kan se at i post nummer skal det være(integer) og i navn og efternavn skal det være text!
Avatar billede jaw Nybegynder
25. oktober 2005 - 21:53 #5
Du har lagt mærke til, at dit cpr-nr-felt hedder efternavn?

Men du kan jo prøve:
if(!preg_match("/^\\d{6}-\\d{4}$/", $_POST['cpr']) || !preg_match("/\\^d{3,5}$/", $_POST['postnr']) || empty($_POST['navn']) || empty($_POST['efternavn'])) {
    echo "Du har en fejl i din indtastning";
}
Avatar billede foxmulder58 Praktikant
25. oktober 2005 - 21:55 #6
jeps har lige rettet dette, hvordan placerer man den CPR validering ?

mvh
Mads
Avatar billede jaw Nybegynder
25. oktober 2005 - 21:56 #7
Gør du på tilmelding_ledelse.php i dit tilfælde.
Avatar billede foxmulder58 Praktikant
25. oktober 2005 - 21:57 #8
yes den virker!
Avatar billede foxmulder58 Praktikant
25. oktober 2005 - 21:58 #9
men desværre er det lidt skørt at den echo"du har en fejl i din indtastning" kan de ikke valideres seperat?

Således brugeren ved hvilket felt det er fejl indtastet?



mvh
Mads
Avatar billede foxmulder58 Praktikant
25. oktober 2005 - 22:00 #10
jeg vil gerne validere disse felte og echo for hvert felt med fejlen som jeg så angiver!
Avatar billede foxmulder58 Praktikant
25. oktober 2005 - 22:01 #11
Avatar billede jaw Nybegynder
25. oktober 2005 - 22:03 #12
Du kan jo være lidt opfindsom - der er flere måder :) !

$error = array();
if(!preg_match("/^\\d{6}-\\d{4}$/", $_POST['cpr'])) {
  $error[] = "Du har fejl i cpr-nr.";
} elseif(empty($_POST['efternavn'])) {
  $error[] = "Du har fejl i efternavn-feltet";
}

if(count($error) > 0) {
  foreach($error as $v) {
    echo $v . "<br />";
  }
} else {
  //OK!
}
Avatar billede foxmulder58 Praktikant
25. oktober 2005 - 23:08 #13
den validerer CPR nummer forkert.
Avatar billede jaw Nybegynder
25. oktober 2005 - 23:10 #14
Hvordan/hvorfor?
Avatar billede foxmulder58 Praktikant
25. oktober 2005 - 23:10 #15
desuden vil jeg heller ikke have at der sendes videre til næste side når der en fejl i indtastningen. Kan man ikke lave en side der udskriver de fejl eller markere med rødt ud for det felt hvor der blev indtastet forkert?
Avatar billede foxmulder58 Praktikant
25. oktober 2005 - 23:11 #16
se siden selv når jeg indtaster mit CPR nummer siger den der er fejl.


CPR nummer skal indtastes således xxxxxx-xxxx
Avatar billede jaw Nybegynder
25. oktober 2005 - 23:13 #17
Og du har selvfølgelig rettet cpr til cprnr, ikke? Og nej, det kan du ikke i PHP. Så er det javascript. Du kan dog sende ham videre til næste side, validere og sende ham tilbage til siden og derved behandle fejlene og vise dem ved de forms der er forkerte.
Avatar billede erikjacobsen Ekspert
25. oktober 2005 - 23:13 #18
Der står name="cprnr" i din <form> men $_POST['cpr'] i din kode ... ser det ud til herfra.
Avatar billede foxmulder58 Praktikant
25. oktober 2005 - 23:13 #19
Nej det er bedre med en alrt box der advarer hvilke fleter der er forkert.!

Men er det bedre at anvende et javaScript så?
Avatar billede foxmulder58 Praktikant
25. oktober 2005 - 23:15 #20
jeps har jeg lige rettet, den skulle være iorden bortset fra valideringen!
Avatar billede jaw Nybegynder
25. oktober 2005 - 23:18 #21
Nu validerer den da også cpr-nr. korrekt?!
Avatar billede foxmulder58 Praktikant
25. oktober 2005 - 23:18 #22
afæstter lidt fler point således det er lidt mere attrativt
Avatar billede jaw Nybegynder
25. oktober 2005 - 23:19 #23
Det hjælper jo ingenting hvis du vil have en javascript-løsning. Skulle du ikke lige bestemme dig først?
Avatar billede foxmulder58 Praktikant
25. oktober 2005 - 23:19 #24
ok når jeg indtaster  mit eget cpr nr så siger den fejl.

validerer den således xxxxxx-xxxx 

eller

således xxxxxxxxxx
Avatar billede foxmulder58 Praktikant
25. oktober 2005 - 23:20 #25
nej jeg gerne have en PHP løsning sorry for den udtalelse!
Avatar billede jaw Nybegynder
25. oktober 2005 - 23:20 #26
xxxxxx-xxxx
Avatar billede foxmulder58 Praktikant
25. oktober 2005 - 23:22 #27
den validerer da ikke CPR nr korrekt!?
Avatar billede jaw Nybegynder
25. oktober 2005 - 23:26 #28
Nå, men 010101-0101 validerer korrekt her når jeg prøver.
Avatar billede foxmulder58 Praktikant
25. oktober 2005 - 23:29 #29
jeps det er mig der lige havde overset en fejl! Sorry smid et svar!

håber du er her imorgen idet jeg skal have lavet en del på den formular imorgen også :]


mvh
mads
Avatar billede jaw Nybegynder
25. oktober 2005 - 23:29 #30
Det er jeg såmænd nok - men nu er det sengetid :)

Natter! (Og 100 point behøver du nu ikke at give...)
Avatar billede foxmulder58 Praktikant
25. oktober 2005 - 23:34 #31
jo det er fint det er lidt en hastesag!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester