Avatar billede wampiro-uha Nybegynder
10. januar 2005 - 21:48 Der er 8 kommentarer

Optimering af kode-check.

Jeg har lavet nedenstående check, som tjekker hhv. brugernavn, password og mail:

function validateEmail($str) {
  if (eregi('.@.+.', $str)) {
    return true;
  } else {
    return false;
  }
}

function validateBrugernavn($str) {
  if (eregi('^[_a-z0-9-]{3,20}$', $str)) {
    return true;
  } else {
    return false;
  }
}

function validatePassword($str) {
  if (eregi('.{3,20}', $str)) {
    return true;
  } else {
    return false;
  }
}


Er der nogen måde hvorpå koden kan optimeres?
- Et brugernavn og password må være fra 3 til 20 tegn.
- Brugernavnet må kun indeholde a til z, 0 til 9 samt _ og -
- e-mail skal være gyldig
Avatar billede erikjacobsen Ekspert
10. januar 2005 - 21:57 #1
Emailchecket er primitivt, men lader i hvert fald korrekte slippe igennem.
Check evt www.ljweb.com - useful scripts.

Du skal dog nok:
if (eregi('^.{3,20}$', $str)) {
Avatar billede wampiro-uha Nybegynder
10. januar 2005 - 22:05 #2
Er
if (eregi('^.{3,20}$', $str)) {
password-chekket?

Hvad betyder egentlig ^, ., $ osv..? nogen side med forklaringer til det hele?

Det jeg bare ønsker, specielt med email-checket, er at der kun kan slippe syntaks-rigtige mails igennem. Der sendes et aktiveringslink med mailen som sørger for at mailen tilhører vedkommende der opretter sig.
Avatar billede kalp Novice
10. januar 2005 - 22:05 #3
function validate_email( $email )
{
  $email = trim( $email ); # removes whitespace
  if( !empty($email) ):
    //  validate email address syntax
    if( preg_match('/^[a-z0-9\\_\\.]+@[a-z0-9\\-]+\\.[a-z]+\\.?[a-z]{2,4}$/i', $email, $match) ):
      return strtolower($match[0]); # valid!
    endif;
  endif;
  return false; # NOT valid!
}


til email ?
Avatar billede wampiro-uha Nybegynder
10. januar 2005 - 22:10 #4
kalp --> din funktion retter måske nok mere mail-adressen til end jeg finder nødvendigt. Ellers tak for dit forslag :-)

Skal bare lade slippe syntaks-korrekte data igennem (men også kun syntaks-rigtige).
Avatar billede erikjacobsen Ekspert
10. januar 2005 - 22:12 #5
Forklaring om regexp på http://php.net/

^ og $ sørger for at passwordchecket starter i starten og slutter i slutningen
af strengen. Din udgave tillod mere end 20 tegn. Et test med http://php.net/strlen
kunne også have gjort det ;)
Avatar billede erikjacobsen Ekspert
10. januar 2005 - 22:13 #6
Et emailcheck der tillader TLD-er på 2-4 tegn ({2,4}) er for gammeldags, når man
nu kan hedde xxx@xxx.museum osv., kalp.
Avatar billede kalp Novice
10. januar 2005 - 22:17 #7
erikjacobsen>> Du har ganske ret;)
Avatar billede wampiro-uha Nybegynder
10. januar 2005 - 22:24 #8
hvad med . (punktummet)?
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