Avatar billede stois Nybegynder
09. juni 2004 - 12:37 Der er 38 kommentarer og
1 løsning

Kode der ikke virker

Jeg kan simpelthen ikke forstå den her kode:

function Validate_E_mail($email) {
if (preg_match("/\b[A-Z0-9._%+-]+@[A-Z0-9._%-]+\.[A-Z0-9._%-]{2,4}\b/i", $mail)) {
  return "false";
  exit;
  } else {
  return "true";
  }
}

Jeg fik den af en gut herinde der kaldte sig Jaw, men det virker bare ikke =(....
Avatar billede stois Nybegynder
09. juni 2004 - 12:37 #1
Den tidligere tråd er her: http://www.eksperten.dk/spm/507723
Avatar billede dennismp Nybegynder
09. juni 2004 - 12:39 #2
Prøv evt at kigge på verify_email scriptet herfra:

http://www.ljweb.biz/usefulscripts/
Avatar billede stois Nybegynder
09. juni 2004 - 12:40 #3
Det har jeg gjort, men det virker heller ikke =(
Avatar billede jakobclausen Nybegynder
09. juni 2004 - 12:40 #4
Han skriver følgende:
if (preg_match("/\b[A-Z0-9._%+-]+@[A-Z0-9._%-]+\.[A-Z0-9._%-]{2,4}\b/i", $mail))
{
    //godkendt
}
else
{
  // ikke godkent
}

SÅ vidt jeg kan se er det lidt omvendt af den kode du skriver her, så prøve lige med følgende:

if (!preg_match("/\b[A-Z0-9._%+-]+@[A-Z0-9._%-]+\.[A-Z0-9._%-]{2,4}\b/i", $mail)) {
Avatar billede stois Nybegynder
09. juni 2004 - 12:41 #5
hvorvidt det er den rigtige vej eller ej virker koden stadigvæk ikke..

jeg har prøvet at skrive en okay email, og fik et svar (det er lige meget hvilket). Derpå prøvede jeg en helt forkertformateret e-mail og fik nøjagtigt samme svar...
Avatar billede thb Nybegynder
09. juni 2004 - 12:42 #6
jeg plejer at bruge den her:

if (!preg_match('/^([a-zA-Z0-9._-]*|[a-zA-Z0-9]*)@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]*([a-zA-Z0-9]))+$/', $_POST['turn_emai'])) {
  $error[] = "Kontakt emailen er ugyldig.";
}

Thomas
Avatar billede dennismp Nybegynder
09. juni 2004 - 12:42 #7
jeg tror altså der er forskellige karakter der skal escapes.

fx
. -> \.
+ -> \+
- -> \-
Avatar billede chries Nybegynder
09. juni 2004 - 12:43 #8
prøv:
function Validate_E_mail($email) {
if (preg_match("/\b[A-Z0-9._%+-]+@[A-Z0-9._%-]+\.[A-Z0-9._%-]{2,4}\b/i", $email)) {
  return false;
  } else {
  return true;
  }
}

$mail = "me@me.com";

if( Validate_E_mail($mail) ) {
  echo "ok";
}
Avatar billede stois Nybegynder
09. juni 2004 - 12:43 #9
Okay jeg prøver lige din THB
Avatar billede chries Nybegynder
09. juni 2004 - 12:43 #10
", $mail))

->
", $email))

+ den returner rigtig false og true
Avatar billede stois Nybegynder
09. juni 2004 - 12:46 #11
THB den returnere "false" uanset om e-mail er rigtig eller forkert
Avatar billede thb Nybegynder
09. juni 2004 - 12:47 #12
så kan du skrive:

function Validate_E_mail($email){
return (preg_match('/^([a-zA-Z0-9._-]*|[a-zA-Z0-9]*)@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]*([a-zA-Z0-9]))+$/', $email)) ? TRUE : FALSE;
}

$mail = "thomas@thomas.dk";
if(!Validate_E_mail($mail)) print("Fejl");
Avatar billede jakobclausen Nybegynder
09. juni 2004 - 12:47 #13
stois >> noget kunne tyde på at DU laver en fejl et eller andet sted - kan du ikke prøve at komme med noget mere af din kode.
Avatar billede stois Nybegynder
09. juni 2004 - 12:47 #14
Hvad har du ændret?
Avatar billede thb Nybegynder
09. juni 2004 - 12:49 #15
ikke noget... :D
Jeg lavede det bare til en hel funktion ligesom chries..

Den virker altså helt fint på mit site..

Thomas
Avatar billede stois Nybegynder
09. juni 2004 - 12:49 #16
function Validate_E_mail($email) {
if (!preg_match('/^([a-zA-Z0-9._-]*|[a-zA-Z0-9]*)@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]*([a-zA-Z0-9]))+$/', $mail))  {
  return "false";
  exit;
} else {
  return "true";
}
}

det er alt der er i min funktion
Avatar billede stois Nybegynder
09. juni 2004 - 12:49 #17
Der er altså noget som jeg gør galt og det er ikke den der sætning
Avatar billede stois Nybegynder
09. juni 2004 - 12:50 #18
Kani se hvad det evt. kunne være det er jeg gør galt ???
Avatar billede detox Nybegynder
09. juni 2004 - 12:50 #19
Du skal ikke have gåseøjne omkring "true" og "false"
Avatar billede chries Nybegynder
09. juni 2004 - 12:50 #20
funktion:
E_mail($email) {

preg:
+$/', $mail))  {
ændres til
+$/', $email))  {
Avatar billede stois Nybegynder
09. juni 2004 - 12:52 #21
%&¤#%&¤& .... og noget det er da også rigtigt *klasker sig selv høøjlydt i panden*
Avatar billede dennismp Nybegynder
09. juni 2004 - 12:52 #22
thb:

bør den anden * ikke være et plus? Ellers tror jeg den accepterer "@email. dk" :)

Og evt ændre den sidste del fra a-zA-Z0-9 til a-zA-Z (jeg tror ikke der findes nogle tld med tal i :))

return (preg_match('/^([a-zA-Z0-9._-]*|[a-zA-Z0-9]*)@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]*([a-zA-Z0-9]))+$/', $email)) ? TRUE : FALSE;
Avatar billede stois Nybegynder
09. juni 2004 - 12:53 #23
detox> lige i mit tilfælde vil jeg gerne have at der bliver returneret en tekst streng som jeg så kan gøre med hvad jeg vil
Avatar billede jaw Nybegynder
09. juni 2004 - 12:55 #24
Jeg vil også lige sige, at jeg ikke havde gang i at lave det til en funktion, det er dit eget projekt :)
Avatar billede stois Nybegynder
09. juni 2004 - 12:56 #25
THB>

Mener du det skal være:

return (preg_match('/^([a-zA-Z0-9._-]*|[a-zA-Z0-9]*)@[a-zA-Z_-]+(\.[a-zA-Z_-]*([a-zA-Z]))+$/', $email)) ? TRUE : FALSE;

????
Avatar billede stois Nybegynder
09. juni 2004 - 12:57 #26
Sorry Jaw, det var ikke for at sige du var dårlig ovehovedet ikke....

Jeg er bare typen der kan tage god programmering og %¤/&¤%e det fuldstændigt op
Avatar billede stois Nybegynder
09. juni 2004 - 12:59 #27
Jeg kommer da lige i tanke om at TLD sagtens kan være tal... hvad med f.eks. 909.dk
Avatar billede jaw Nybegynder
09. juni 2004 - 13:00 #28
hehe, tog det skam heller ikke op... meeen, vil ikke have skyld for noget jeg ikke var skyld i (så vidt jeg kan se!)
Avatar billede stois Nybegynder
09. juni 2004 - 13:00 #29
he he selvfølgelig ikke =)
Avatar billede stois Nybegynder
09. juni 2004 - 13:04 #30
function Validate_E_mail($email) { // Thanks goes to Lars B. Jensen for this function (http://ww.ljweb.com)
if (preg_match('/^([a-zA-Z0-9._-]*|[a-zA-Z0-9]*)@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]*([a-zA-Z]))+$/', $email))  {
  return "false";
  exit;
} else {
  return "true";
}
}

>-----[ X ]-----<

Jeg har lige prøvet det her, men det virker ikke endnu =(

er det her noget der kun virker på en Unix computer eller hvad?
Avatar billede dennismp Nybegynder
09. juni 2004 - 13:11 #31
function Validate_E_mail($email) { // Thanks goes to Lars B. Jensen for this function (http://ww.ljweb.com)
if (preg_match('/^([a-zA-Z0-9._-]*|[a-zA-Z0-9]*)@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]*([a-zA-Z]))+$/', $email))  {
  return false;
} else {
  return true;
}
}
Avatar billede chries Nybegynder
09. juni 2004 - 13:12 #32
fra php.net

Read RFC 2822 regarding email addresses to find that the following is a more correct way of validating email addresses:

preg_match( "/^[-^!#$%&'*+\/=?`{|}~.\w]+@[-a-zA-Z0-9]+(\.[-a-zA-Z0-9]+)+$/", $email );
Avatar billede stois Nybegynder
09. juni 2004 - 13:21 #33
Parse error: parse error, unexpected ';', expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in c:\appserv\www\test\class.php on line 36
Avatar billede chries Nybegynder
09. juni 2004 - 13:23 #34
if (preg_match( "/^[-^!#$%&'*+\/=?`{|}~.\w]+@[-a-zA-Z0-9]+(\.[-a-zA-Z0-9]+)+$/", $email))....
Avatar billede stois Nybegynder
09. juni 2004 - 13:29 #35
function Validate_E_mail($email) {
        if (preg_match( "/^[-^!#$%&'*+\/=?`{|}~.\w]+@[-a-zA-Z0-9]+(\.[-a-zA-Z0-9]+)+$/", $email))  {
            return "false";
            exit;
        } else {
            return "true";
        }
    }
?>  <--- Der er fejlen... men hvad betyder det?
Avatar billede stois Nybegynder
09. juni 2004 - 13:39 #36
NOOOOOOO!!!!!

Fejlen lå et helt andet sted =(

argh!!! jeg hader når jeg laver sådan noget.. Fejlen lå i at jeg ikke lagde den rigtige variable ind i $email, så er der joh ikke noget at sige til at den ikke får rigtigt fat i den....

Dumme slag til mig
Avatar billede stois Nybegynder
09. juni 2004 - 13:39 #37
En af jer, der har hjulpet mig, send mig et svar så i kan få point!
Avatar billede Slettet bruger
16. juni 2004 - 09:47 #38
TLD kan da ikke være et tal. I 909.dk er det dk, der er TLD.
Avatar billede stois Nybegynder
21. juni 2004 - 11:42 #39
Snydt!
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