Autor | Zpráva | ||
---|---|---|---|
Josef Tlapač Profil * |
#1 · Zasláno: 20. 5. 2009, 21:22:17
Ahoj vsem,
proc mi tohle nevraci 10 nahodnych znaku? co je tam spatne? $heslo = substr('0123456789ABCDEFGHIJKLMNOPRSTUVWXYZabcdefghijklmnoprstuvwxyz', rand(0,15), 10); dekuji |
||
keeehi Profil |
#2 · Zasláno: 20. 5. 2009, 21:31:10
no špatně by tam nemělo být nic, až na to že:
1) nevrátí to náhodné znaky ale řadu 2) malá písmena se tam nikdy nezobrazí,protoře se k nim to nikdy nedostane => takže co třeba: $heslo = substr(md5(microtime()),0,10); |
||
Josef Tlapač Profil * |
#3 · Zasláno: 20. 5. 2009, 21:38:50
a ty velka pismena?
|
||
keeehi Profil |
#4 · Zasláno: 20. 5. 2009, 21:57:01
Josef Tlapač
jsou až tak moc důležitá? |
||
JanJanuska Profil |
#5 · Zasláno: 21. 5. 2009, 12:50:28
Josef Tlapač
nevracia, pretože substr pracuje tak, že z daného reťazca vyberie len určitý za sebou idúci počet znakov --> substr($retazec, $zaciatok, $pocet_znakov); $heslo = substr('0123456789ABCDEFGHIJKLMNOPRSTUVWXYZabcdefghijklmnoprstuvwxyz', rand(0,15), 10); Takže dajme tomu, že rand(0,15) bude číslo 5. Prejdeme v reťazci po šiesty znak (indexuje sa od 0) a vypíše sa 10 znakov, tj. 56789ABCDE Ak chcete vygenerovať náhodné heslo týmto (podobným) spôsobom, dá sa to napr. takto: $retazec = '0123456789ABCDEFGHIJKLMNOPRSTUVWXYZabcdefghijklmnoprstuvwxyz'; $heslo = ''; $dlzka_hesla = 10; for ($i = 0; $i < $dlzka_hesla; $i++ ){ $heslo .= substr($retazec, rand(0,strlen($retazec)), 1); //vyberie sa náhodný znak z reťazca... strlen($retazec) zistí dĺžku reťazca } echo $heslo; |
||
Časová prodleva: 15 let
|
0