Avatar billede foxmulder58 Praktikant
26. oktober 2005 - 10:20 Der er 17 kommentarer og
1 løsning

array der tjekker om email er valid

Hej PHP eksperter,


jeg har denne array der gennemgår en formular for eventuelle indtatsningsfejl:


<?
$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";
}
elseif(empty($_POST['navn'])) {
  $error[] = "Du har fejl i navn-feltet";
  }
elseif(empty($_POST['adresse'])) {
  $error[] = "Du har fejl i adresse feltet";
}
elseif(empty($_POST['postnr'])) {
  $error[] = "Du har fejl i postnr feltet";
}
elseif(empty($_POST['by'])) {
  $error[] = "Du har fejl i by feltet";
  }
if(count($error) > 0) {
  foreach($error as $v) {
    echo $v . "<br />";
  }
} else {
  //OK!
}



jeg vil gerne have valideret om email adressen er korrekt.

Du kan se formularen her:

http://netau.dk.linux14.wannafind.dk/formular_ledelse.htm
Avatar billede dmdisco Nybegynder
26. oktober 2005 - 10:29 #1
!preg_match('\b[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,4}\b', $_POST[email])
Avatar billede foxmulder58 Praktikant
26. oktober 2005 - 10:36 #2
sådan her ikke? :

if(preg_match('\b[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,4}\b', $_POST[email]);
Avatar billede foxmulder58 Praktikant
26. oktober 2005 - 10:39 #3
Er denne korrekt?:

<?
$error = array();
if(!preg_match("/^\\d{6}-\\d{4}$/", $_POST['cpr'])) {
  $error[] = "Du har fejl i cpr-nr.";
  }
 
  if(preg_match('\b[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,4}\b', $_POST[email];
  $error[] ="Du har ikke indtastet en korrekt email adresse";
  }
} elseif(empty($_POST['efternavn'])) {
  $error[] = "Du har fejl i efternavn-feltet";
}
elseif(empty($_POST['navn'])) {
  $error[] = "Du har fejl i navn-feltet";
  }
elseif(empty($_POST['adresse'])) {
  $error[] = "Du har fejl i adresse feltet";
}
elseif(empty($_POST['postnr'])) {
  $error[] = "Du har fejl i postnr feltet";
}
elseif(empty($_POST['by'])) {
  $error[] = "Du har fejl i by feltet";
  }
if(count($error) > 0) {
  foreach($error as $v) {
    echo $v . "<br />";
  }
} else {
  //OK!
}
Avatar billede dmdisco Nybegynder
26. oktober 2005 - 10:40 #4
<?
$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";
} elseif(empty($_POST['navn'])) {
  $error[] = "Du har fejl i navn-feltet";
} elseif(empty($_POST['adresse'])) {
  $error[] = "Du har fejl i adresse feltet";
} elseif(empty($_POST['postnr'])) {
  $error[] = "Du har fejl i postnr feltet";
} elseif(empty($_POST['by'])) {
  $error[] = "Du har fejl i by feltet";
} elseif(!preg_match('\b[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,4}\b', $_POST[email])) {
  $error[] = "du har en fejl i email";
}
if(count($error) > 0) {
  foreach($error as $v) {
    echo $v . "<br />";
  }
} else {
  //OK!
}
Avatar billede dmdisco Nybegynder
26. oktober 2005 - 10:41 #5
du skal lige have ! foran da du vil tjekke om email ikke overholder reglen
Avatar billede foxmulder58 Praktikant
26. oktober 2005 - 10:44 #6
ja jeg får dog en parse error på linien 22:

<?
$error = array();
if(!preg_match("/^\\d{6}-\\d{4}$/", $_POST['cpr'])) {
  $error[] = "Du har fejl i cpr-nr.";
  }
 
  if(!preg_match('\b[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,4}\b', $_POST[email]{
  $error[] ="Du har ikke indtastet en korrekt email adresse";
Avatar billede foxmulder58 Praktikant
26. oktober 2005 - 10:48 #7
Jeg kan ikke se fejlen i denne:


<?
$error = array();
if(!preg_match("/^\\d{6}-\\d{4}$/", $_POST['cpr'])) {
  $error[] = "Du har fejl i cpr-nr.";
  }
 
  if(!preg_match('\b[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,4}\b', $_POST[email]{
  $error[] ="Du har ikke indtastet en korrekt email adresse";

} elseif(empty($_POST['efternavn'])) {
  $error[] = "Du har fejl i efternavn-feltet";
}
elseif(empty($_POST['navn'])) {
  $error[] = "Du har fejl i navn-feltet";
  }
elseif(empty($_POST['adresse'])) {
  $error[] = "Du har fejl i adresse feltet";
}
elseif(empty($_POST['postnr'])) {
  $error[] = "Du har fejl i postnr feltet";
}
elseif(empty($_POST['by'])) {
  $error[] = "Du har fejl i by feltet";
  }
if(count($error) > 0) {
  foreach($error as $v) {
    echo $v . "<br />";
  }
} else {
  //OK!
}



Browseren siger parse error i linie 22 som er : $error[] ="Du har ikke indtastet en korrekt email adresse";
Avatar billede dmdisco Nybegynder
26. oktober 2005 - 11:09 #8
ændre
  if(!preg_match('\b[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,4}\b', $_POST[email]{
  $error[] ="Du har ikke indtastet en korrekt email adresse";
til
  if(!preg_match('\b[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,4}\b', $_POST[email])){
  $error[] ="Du har ikke indtastet en korrekt email adresse";

du mangler ))
Avatar billede foxmulder58 Praktikant
26. oktober 2005 - 11:15 #9
tak nu validerer den men, giver også denne fejl:

Warning: preg_match(): Delimiter must not be alphanumeric or backslash in /var/www/www.netau.dk/www/tilmelding_ledelse.php on line 21
Avatar billede foxmulder58 Praktikant
26. oktober 2005 - 11:16 #10
dette gælder også når man indtaster en valid email adresse!
Avatar billede dmdisco Nybegynder
26. oktober 2005 - 11:22 #11
ændre
'\b[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,4}\b'
til
"/\b[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,4}\b/"

kan være det er ikke sikker
Avatar billede foxmulder58 Praktikant
26. oktober 2005 - 11:27 #12
Yes så smider du et svar får nu er opgaven løst!!!

1000 tak dmdisco!

God karma på vej til dig!!!
Avatar billede dmdisco Nybegynder
26. oktober 2005 - 11:27 #13
svar
Avatar billede foxmulder58 Praktikant
26. oktober 2005 - 11:30 #14
Sjovt nok sender den ikke CPR nummeret videre til den email jeg har angivet?


men det må jeg lige kigge på!
Avatar billede foxmulder58 Praktikant
26. oktober 2005 - 11:43 #15
nej det virker sgu ikke desværre jeg kan heller ikke forst at jeg ikke får oplynsingerne omrking cpr nr sendt videre til mailen...øv!
Avatar billede dmdisco Nybegynder
26. oktober 2005 - 11:59 #16
prøv det her så
"/\b[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,4}\b/i"
Avatar billede dmdisco Nybegynder
26. oktober 2005 - 12:00 #17
mht. cpr så tjek om det er den rigtige variabel du fører vidre evt print $_POST ud for at se om den sender det vidre ordentligt
Avatar billede foxmulder58 Praktikant
26. oktober 2005 - 14:08 #18
Hej dmdisco jeg kgger på det, håber du er her på eksperten.dk iaften!
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