Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/11/2011, 12:03
Avatar de TheScript
TheScript
 
Fecha de Ingreso: septiembre-2011
Ubicación: Spain
Mensajes: 164
Antigüedad: 12 años, 7 meses
Puntos: 30
¿Que hace en realidad ésta función?

Hola, estaba buscando algunos ejemplos para generar claves aleatorias, y me he encontrado con una pequeña duda, he buscado en el manual de PHP pero no me queda claro, ¿alguien puede explicarme cual es su cometido?

Esta es la línea que no me queda clara, que es lo que hace en realidad:
Código PHP:
srand((double)microtime()*1000000); 
Y esta la función en la que está aplicada:
Código PHP:
function SetRandomPassword(){
        
$pass '';
        
$chars = array(
             
"1","2","3","4","5","6","7","8","9","0",
             
"a","A","b","B","c","C","d","D","e","E","f","F","g","G","h","H","i","I","j","J",
             
"k","K","l","L","m","M","n","N","o","O","p","P","q","Q","r","R","s","S","t","T",
             
"u","U","v","V","w","W","x","X","y","Y","z","Z");
    
        
$count count($chars) - 1;
    
        
srand((double)microtime()*1000000);
    
        for(
$i 0$i 8$i++){
            
$pass .= $chars[rand(0$count)];
        }
        return(
$pass);
    } 
La función la he probado y va 'casi' perfecta, la estoy utilizando para que un usuario que haya olvidado su contraseña, introduzca su email y se le mande una nueva (aleatoria claro...), el script me funciona, se introduce la nueva contraseña en la base de datos, pero al intentar entrar con la nueva, no me deja, y al cabo de un tiempo si que me deja, ¿Puede ser debido a la funcion microtime()?

Cualquier aclaración me vendría bien Gracias!