max 10 tekens in wachtwoord, werkt niet

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Patrick Bdo

Patrick Bdo

18/09/2010 21:19:42
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
    function check_field ($inhoud, $type) {
        trim($inhoud); // eventuele spaties verwijderen
        switch ($type) {
            case
T_PASSWORD:
                if(empty($inhoud) || !eregi( '^[a-zA-Z].{5,11}$', $inhoud)) {
                    return false;
                    }

                else {
                    return true;
                    }

                break;
             default:

             return false;
             }
         }

?>


Bovenstaande function moet er voor zorgen dat je maar maximaal 10 tekens in een wachtwoord aanmaakt. En minimaal 4.

Maar als ik registreer met 15 tekens in een wachtwoord, dan wordt registratie gewoon geaccepteerd.
Geen foutmelding ondanks deze check,
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
    if(!check_field($member_wachtwoord, T_PASSWORD)) {
        $fout_bericht .= "U hebt geen geldig wachtwoord opgegeven (minimaal 6, maximaal 10 tekens)";
        }

?>

Ik zie de fout niet en krijg ook geen foutmelding.
Wie kan me verder helpen?
 
PHP hulp

PHP hulp

29/03/2024 00:07:00
 
Vincent Huisman

Vincent Huisman

18/09/2010 21:24:55
Quote Anchor link
je kan ook gewoon strlen gebruiken
 
The Ultimate

The Ultimate

18/09/2010 21:29:13
Quote Anchor link
Wanneer je een html formulier gebruikt kun je ook gewoon 'maxlength="10"' gebruiken. Wel zo eenvoudig.

Dan hoef je dus alleen de 4 nog maar te controleren.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
if(strlen($wachtwoord) < 5){
 echo 'Het wachtwoord is te kort.';
}

?>
 
Vincent Huisman

Vincent Huisman

18/09/2010 21:44:48
Quote Anchor link
maar die maxlength is wel te omzeilen
 
- Raoul -

- Raoul -

18/09/2010 21:46:16
Quote Anchor link
Tja ik denk dat dat html formulier gemakkelijk te omzeilen is ;)

Toevoeging op 18/09/2010 21:47:23:

Woeps, ik bleef even hangen in dit topic Vincent, daarom zag ik je bericht nog niet :P
 
The Ultimate

The Ultimate

18/09/2010 22:29:41
Quote Anchor link
Zoiets?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
function check_field ($inhoud, $type) {

    trim($inhoud); // eventuele spaties verwijderen

    switch ($type) {

    case
'T_PASSWORD':

    if(strlen($inhoud) < 5 || strlen($inhoud) > 10 || !eregi('^[a-zA-Z].$', $inhoud)) {
        return false;
    }
else{
        return true;
    }

    break;
    default:
return false;
    }
}

?>
Gewijzigd op 18/09/2010 22:40:15 door The Ultimate
 
Vincent Huisman

Vincent Huisman

18/09/2010 22:31:14
Quote Anchor link
houd er nu wel rekening mee dat je input nu 5 of meer moet tekens moet zijn
 
The Ultimate

The Ultimate

18/09/2010 22:41:11
Quote Anchor link
Patrick Baldo op 18/09/2010 21:19:42:
Bovenstaande function moet er voor zorgen dat je maar maximaal 10 tekens in een wachtwoord aanmaakt. En minimaal 4.


@Vincent:
Dat was toch de opdracht? Of bedoel je 4 != 5?
Gewijzigd op 18/09/2010 22:41:31 door The Ultimate
 
Vincent Huisman

Vincent Huisman

18/09/2010 22:46:13
Quote Anchor link
hij wou minimaal 4 tekens, jij hebt nu gezegt dat je minimaal 5 tekens moet. dus inderdaad 4 != 5
 
- Mark -

- Mark -

18/09/2010 22:55:51
Quote Anchor link
Eregi is verouderd. Ik gebruik zelf onderstaande. Ik heb de is_password functie even voor je aangepast als vind ik hem wat zwak op de manier die jij wilt. Ik zou het tussen de 7 en 20 lang doen en alfanumerieke wachtwoorden toestaan. De code lijkt wat lang maar is meer commentaar dan wat anders.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<?php

    /*--------------------------------------------------------------------------------------------------------------------------    
    (§) Function | digit_in_range()
    --------------------------------------------------------------------------------------------------------------------------*/    

    /*---- INFO! ---->
    
        Functie voor het controleren of een numerieke waarde gelijk aan of tussen het minimum en maximum ligt.

        digit_in_range() geeft TRUE of FALSE terug.

    */

    
        function digit_in_range($min, $max, $digit){
            
            return ($digit >= $min and $digit <= $max) ? true : false ;
        }

        

    /*--------------------------------------------------------------------------------------------------------------------------    
    (§) Function | strlen_in_range()
    --------------------------------------------------------------------------------------------------------------------------*/    

    /*---- INFO! ---->
    
        Functie voor het controleren of de lengte van een string gelijk aan of tussen het minimum en maximum ligt.

        strlen_in_range() geeft TRUE of FALSE terug.

    */

    
        function strlen_in_range($min, $max, $string){
        
            return digit_in_range($min, $max, strlen($string));
        }



    /*--------------------------------------------------------------------------------------------------------------------------    
    (§) Function | is_password()
    --------------------------------------------------------------------------------------------------------------------------*/    

    /*---- INFO! ---->
    
        Functie voor het controleren of een wachtwoord " password " geldig is. Een geldig wachtwoord mag alleen
        letters bevatten en moet tussen de 4 en 10 karakters lang zijn.

        is_password() geeft TRUE of FALSE terug.

    */

    
        function is_password($password){
        
            return (ctype_alpha($password) and strlen_in_range(4, 10, $password)) ? true : false ;
        }


?>
Gewijzigd op 18/09/2010 22:56:09 door - Mark -
 
The Ultimate

The Ultimate

18/09/2010 23:09:25
Quote Anchor link
@Mark:
Ik snap het niet zo goed: Waarom 2 aparte functies die allebei hetzelfde doen?

digit_in_range() en strlen_in_range() doen beide hetzelfde. Je gebruikt dus onnodig veel code. Als je dan bij digit_in_range() zou controleren of het daadwerkelijk een integer ofzo is dan heeft het nog nut. Maar dan zul je wel ook even strlen_in_range() aan moeten passen.
 
- Mark -

- Mark -

18/09/2010 23:14:28
Quote Anchor link
:p ze doen niet beide hetzelfde, digit_in_range() is voor getallen en strlen_in_range is voor strings. Ik gebruik ze ook appart voor andere functies.
 
The Ultimate

The Ultimate

18/09/2010 23:26:34
Quote Anchor link
@Mark:
Je hebt gelijk, las het verkeerd. Excuses.
 
- Mark -

- Mark -

18/09/2010 23:33:19
Quote Anchor link
:p Het lijkt ook een beetje overkill op deze manier doordat alleen is_password() er nu gebruik van maakt maar in combinatie met mijn andere fucties valt dat wel mee en is het naar mijn mening beter voor de leesbaarheid.
 
Hipska BE

Hipska BE

19/09/2010 11:17:00
Quote Anchor link
Wat is het nut om een wachtwoord te beperken in het aantal tekens?

Het is toch niet de bedoeling om wachtwoorden te beperken in moeilijkheidsgraad maar net andersom toch?
En voor de opslag moet je het ook niet doen want die word, als alles goed is, toch gehashed...
 
Pieter ten Boomen

Pieter ten Boomen

19/09/2010 11:29:04
Quote Anchor link
Blij dat jij het zegt...
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.