• User

    problema generazione password

    Ciao a tutti,
    io ho usato questa funzione per generare automaticamente le password per gli iscritti al mio sito, ma ho un problemino...
    io vorrei che le password fossero lunghe 6 caratteri, ma qui la funzione mi restituisce password che sono di lunghezza variabile e nella maggior parte dei casi mi restituisce password di lunghezza di 2 caratteri..che non sono il massimo....
    Come posso fare??grazie!!:x

    function rPass($length = 6) {
    // Questo array contiene i caratteri con i quali
    // saranno create le password
    $lettere = explode(" ",
    "a b c d e f g h i j k l m n o p q r s t u v w x y z "
    ."0 1 2 3 4 5 6 7 8 9");
    // questo ? il clico tramite si crea la password
    for($i=0;$i<$length;$i++) {
    srand((double)microtime()*8622342); //i paranoici possono cambiare questo paramentro numerico
    $foo = rand(0, 61);
    $pass = $pass.$lettere[$foo];
    }
    return $pass;


  • User Attivo

    Hai tolto le maiuscole???
    Perchè questo script probabilmente le faceva lunghe 6 però dove fa rand(0, 61) vuol dire che si aspettava un array di 61 caratteri, invece l'array che hai te è minuscole (26) + numeri (10), quindi 36.
    Prova a sostituire il 61 nel rand() con 36!


  • User

    @Senamion said:

    Hai tolto le maiuscole???
    Perchè questo script probabilmente le faceva lunghe 6 però dove fa rand(0, 61) vuol dire che si aspettava un array di 61 caratteri, invece l'array che hai te è minuscole (26) + numeri (10), quindi 36.
    Prova a sostituire il 61 nel rand() con 36!

    Grazie mille per il consiglio!!!!!!!!!
    In effetti è stato illuminante...adesso mi crea password più belle, comunque capita anche che non me ne crei di lunghezza pari a 6 ma inferiori...come posso fare per avere password proprio pari a 6 caratteri??
    Grazie mille!!!!!:ciauz:


  • User Attivo

    Prova a sostituire questo:

    $foo = rand(0, 61);

    Così:

    $foo = rand(0, count($lettere) - 1);

    Sistemi anche il fatto che se aggiungi o togli lettere lui si adegua correttamente.


  • User

    @Senamion said:

    Prova a sostituire questo:

    $foo = rand(0, 61);

    Così:

    $foo = rand(0, count($lettere) - 1);

    Sistemi anche il fatto che se aggiungi o togli lettere lui si adegua correttamente.

    OTTIMO!!!!!!GRAZIE MILLE!!:fumato: