Avatar billede netspinner Nybegynder
07. december 2004 - 01:43 Der er 5 kommentarer og
1 løsning

Uddybende forklaring til kodestump ønskes

Jeg vil gerne have følgende funktion forklaret UDDYBENDE, dvs. ikke bare nogle tanker som "jeg tror at..." og gerne linie for linie. Kodestumpen bruges til at generere et nyt, tilfældigt kodeord. Burde være en smal sag for dem som har anvendt lignende ;-)

function randPass() {
        $salt = "abchefghjkmnpqrstuvwxyz0123456789"; //vokabularet bestaar af 33 tegn
        srand((double)microtime()*1000000);
        $i = 0;
        while ($i <= 7) {
                $num = rand() % 33;
                $tmp = substr($salt, $num, 1);
                $pass = $pass . $tmp;
                $i++;
        }
        return $pass;
}
Avatar billede morteeart Nybegynder
07. december 2004 - 01:58 #1
function randPass() {
        $salt = "abchefghjkmnpqrstuvwxyz0123456789"; // de forskellige tegn som funktionen kan vælge imellem til generering af kodeordet
        srand((double)microtime()*1000000); // laver en algromi, til at lave find en random værdi.
        $i = 0;
        while ($i <= 7) { // laver en løkke, til 8 tegn. 0 til 7 = 8
                $num = rand() % 33; // laver et tilfældigt valg, ud fra den i forvejen sat algromi.
                $tmp = substr($salt, $num, 1); // laver substrig, for at gøre det mere tilfældigt.
                $pass = $pass . $tmp;
                $i++;
        }
        return $pass; // retunere passwordet
}


Det er ihvertfaldt sådan jeg vil tolke det, ret mig hvis det er forkert.
Avatar billede detox Nybegynder
07. december 2004 - 01:58 #2
Jeg har for en ordens skyld tilføjet en manglende linje i funktionen:

function randPass() {
        $salt = "abchefghjkmnpqrstuvwxyz0123456789"; //vokabularet bestaar af 33 tegn
        srand((double)microtime()*1000000); //sørger for at rand() starter med et nyt tilfældigt tal (er unødvendigt efter ver. 4.2
        $i = 0;
        $pass = ''; // initialiserer $pass (tilføjet)
        while ($i <= 7) { //kører løkken 8 gange
                $num = rand() % 33; // rand genererer et tilfældigt tal mellem 0 og RAND_MAX. % 33 giver resten ved division med 33. Man kunne osse bruge: rand(0,32);
                $tmp = substr($salt, $num, 1); //udtrækker et tegn fra $salt (med nummer: $num)
                $pass = $pass . $tmp; //tilføjer $tmp til $pass
                $i++; //lægger 1 til $i
        } //while løkken ender her
        return $pass; //funktioenen returnerer $pass
} //funktionen slutter her
Avatar billede netspinner Nybegynder
07. december 2004 - 02:01 #3
Gode svar begge to(!), detox du svarede, så du fik pointene ;-)
Avatar billede morteeart Nybegynder
07. december 2004 - 02:03 #4
hans var også mere korrekt end mit :)
Avatar billede netspinner Nybegynder
07. december 2004 - 02:04 #5
Rigtigt, men du nævnte trods alt at substr gør det mere tilfældigt :-)
Avatar billede detox Nybegynder
07. december 2004 - 02:08 #6
Lad os lige slå fast at substr() ikke gør noget tilfældigt. Den udtrækker en del af en streng således:

$del_af_streng = substr($oprindelig_streng, $start_nr, $antal_tegn);
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