Avatar billede straszek Praktikant
02. august 2004 - 12:36 Der er 10 kommentarer og
1 løsning

fejl i if sætning

Jeg forsøger at bruge nedenstående kode til at undersøge om at password er midst 6 tegn langt, og et af disse tegn skal være et tal, med det virker ikke rigtigt. Uanset hvordan passworded er sat sammem så får jeg den besked som skulle vise hvis passwordet var forkert - nu kommer den måde nå passwordet er rigtigt indtastet og når det er forkert.

Hvor er fejlen?

            if (strlen($pass1) < 6 || !eregi("[1-9]{1}[a-z]{1}",$pass1)) {
            echo "<br><strong>Kodeordet skal være på mindt 6 karaktere og indeholde mindst 1 tal</strong>";
            echo '<a href="java script:history.back();">Gå tilbage og prøv igen';     
EXIT;
}
Avatar billede jakobdo Ekspert
02. august 2004 - 13:07 #1
Hvad hvis du evt bruger denne:

if (strlen($pass1) < 6 && !ereg('[^A-Za-z0-9]', $pass1))
{
    echo "<br><strong>Kodeordet skal være på mindt 6 karaktere og indeholde mindst 1 tal</strong>";
    echo '<a href="java script:history.back();">Gå tilbage og prøv igen';     
    EXIT;
}
Avatar billede straszek Praktikant
02. august 2004 - 13:25 #2
Det gør det lidt bedre nu virker første del nu tjekker den om $pass1 er mindst 6 tegn, men den springer over at tjekke om mindste et tegn er et tal

Søren
Avatar billede jakobdo Ekspert
02. august 2004 - 13:38 #3
Det med Ereg, er jeg desværre ikke den store haj til...
Avatar billede detox Nybegynder
02. august 2004 - 13:44 #4
Du kunne dele det op i to:

if (strlen($pass1) < 6)
{
    echo "<br><strong>Kodeordet skal være på mindt 6 karakterer</strong><br />";
    echo '<a href="java script:history.back();">Gå tilbage og prøv igen';     
    EXIT;
}
if (!preg_match('[\d+]', $pass1)) {
    echo "<br><strong>Kodeordet skal indeholde mindst et tal</strong><br />";
    echo '<a href="java script:history.back();">Gå tilbage og prøv igen';     
    EXIT;
}
Avatar billede detox Nybegynder
02. august 2004 - 13:46 #5
Ellers:

if (strlen($pass1) < 6 || !preg_match('[\d+]', $pass1))
{
Avatar billede straszek Praktikant
02. august 2004 - 13:46 #6
Gør if (!preg_match('[\d+]', $pass1)) {

Det samme som
!ereg('[^A-Za-z0-9]', $pass1

?
Avatar billede detox Nybegynder
02. august 2004 - 13:47 #7
Næ, den tjekker om der er mindst et tal.
Avatar billede detox Nybegynder
02. august 2004 - 13:54 #8
Mere korrekt er nok (altså med / og /):

!preg_match('/[\d+]/')
Avatar billede straszek Praktikant
02. august 2004 - 13:55 #9
detox det virkede med at dele den op i flere dele. Smide et svar....
Avatar billede detox Nybegynder
02. august 2004 - 14:00 #10
Ok
Avatar billede knudx Nybegynder
02. august 2004 - 14:12 #11
prøv at splitte regex'en op i to sådan:

if ((strlen($pass) < 6) || !preg_match ('[a-zA-Z]', $pass) || !preg_match ('\d', $pass)) {
    echo "Password skal være MINDST 6 tegn, og skal indeholde BÅDE tal og bogstaver!";
    exit();
}
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