Foros del Web » Programando para Internet » PHP »

¿Que hace en realidad ésta función?

Estas en el tema de ¿Que hace en realidad ésta función? en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 13/11/2011, 12:03
Avatar de TheScript  
Fecha de Ingreso: septiembre-2011
Ubicación: Spain
Mensajes: 164
Antigüedad: 13 años, 2 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!
  #2 (permalink)  
Antiguo 13/11/2011, 12:17
 
Fecha de Ingreso: mayo-2010
Mensajes: 65
Antigüedad: 14 años, 6 meses
Puntos: 5
Respuesta: ¿Que hace en realidad ésta función?

esa linea te sobra, borrala y prueba de nuevo, aunque la función microtime() devuelve la marca del tiempo unix actual, asique no tendría porque fallar, pero no hace nada, borrala, puede ser que al copiar la contraseña se copie un espacio al final prueba de ponerla a mano,
saludos
__________________
perfumes de imitacion
  #3 (permalink)  
Antiguo 13/11/2011, 12:25
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 17 años, 1 mes
Puntos: 188
Respuesta: ¿Que hace en realidad ésta función?

Código PHP:
srand((double)microtime()*1000000); 

A eso que ves (double), se le llama casteo. http://social.msdn.microsoft.com/For...a-afd675e9e002

Y como no está asignada a una variable creo que te sobra, como dice la respuesta anterior a la mía.
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.
  #4 (permalink)  
Antiguo 13/11/2011, 12:28
Avatar de TheScript  
Fecha de Ingreso: septiembre-2011
Ubicación: Spain
Mensajes: 164
Antigüedad: 13 años, 2 meses
Puntos: 30
Respuesta: ¿Que hace en realidad ésta función?

Ok, la borraré a ver si así tarda menos en cogerme la nueva clave, la verdad es que no le encuentro mucha explicación, ya que al pedir la nueva clave inmediatamente me hace un update el la bd, con la contraseña nueva... no tendría por qué tardar... o eso creo... Ya que cuando introduzco la nueva contraseña, y compara en la base de datos... debe de coincidir!! Y no lo hace hasta pasado un tiempo!! En fin, me quedaré con la duda... jejejejej

Muchas gracias edwardd89 y iovan por contestar. Un saludo!

Etiquetas: realidad, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:07.