• Geachte leden,


    Ik ben bezig met het profiel wijzigen gedeelte voor me spel.
    Nu wil ik dat spelers een absoluut veilig wachtwoord instellen.


    Nu ben ik op het gedeelte dat het stukje PHP moet controleren of er nummers en letters in zitten.


    - [func]ctype_alnum[/func]
    - [func]ctype_digit[/func]
    - [func]ctype_alpha[/func]


    De controle ziet er als volgt uit, dit is het relevante stukje code.


    PHP
    <?PHP
    //$newpw klopt die heb ik bovenin het script namelijk.
    
    
    elseif (!ctype_alnum($newpw) AND !ctype_digit($newpw) AND !ctype_alpha($newpw))
    {
    	echo "Make sure your new password containing both numbers and letters.<hr>";
    }
    ?>


    Heeft iemand enig idee wat er precies fout aan is, ik heb al rondgevraagd en gezocht maar komen er niet helemaal uit.


    Alvast bedankt :cheer:


    mvg,
    superior

  • In je if statement staat nu feitelijk:


    Als het nieuwe wachtwoord NIET bestaat uit alleen maar letters en cijfers EN NIET bestaat uit alleen maar cijfers EN NIET bestaat uit alleen maar letters DAN is het niet goed.


    Dat is iets heel anders dan een wachtwoord dat zowel letters en cijfers moet bevatten. Het volgende if-statement lus zal dat valideren:


    PHP
    if(!ctype_digit($pass) && !ctype_digit($pass) && ctype_alnum($pass)) {
      echo 'Dit wachtwoord bestaat uit letters en cijfers, met minimaal één letter, en minimaal één cijfer.';
    }


    Echter, dat is heel wat anders dan een goed wachtwoord. Een goed wachtwoord is minstens 8 tekens lang, bevat letters (hoofdletters en kleine letters), cijfers en vreemde tekens.

  • @Killingdevil
    Verrassing, onderin wordt gecontroleerd of hij 9 tekens is :p
    En daar komt nog eens bij dat het door een SALT gaat, dus dan zal hij wel veilig zijn opgeslagen.
    Maar waarom een if statement als ik bovenin al een if heb?


    De bedoeling is dat de user een wachtwoord zoals bijvoorbeeld: a1B2c3D maakt.
    Ben ik nou gigantisch fout bezig, of snap ik je uitleg gewoon niet helemaal?


    Even de hele code erbij gepakt, behalve gevoelige informatie.


  • @Killingdevil
    Het werkt nog steeds niet, als ik wachtwoord "oooooooooo" doe dan gaat hij gewoon door met de wijziging.


    De bedoeling is dat hij moet aangeven dat er letters en cijfers in moeten zitten..

  • Foutje van mij kant:


    PHP
    if(!ctype_digit($pass) && !ctype_alpha($pass) && ctype_alnum($pass)) {
      echo 'Dit wachtwoord bestaat uit letters en cijfers, met minimaal één letter, en minimaal één cijfer.';
    }


    Had twee keer ctype_digit in plaats van ctype_digit en ctype_alpha. Handig!

  • Dat zou wel moeten, want deze test slaagt:


Participate now!

Heb je nog geen account? Registreer je nu en word deel van onze community!