Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Error al generar claves aleatorias

Estas en el tema de Error al generar claves aleatorias en el foro de PHP en Foros del Web. Buenas, he encontrado este código para generar claves aleatorias de un tamaño determinado en internet y de vez en cuando me da ERROR y no ...
  #1 (permalink)  
Antiguo 25/03/2013, 12:45
Avatar de javicruzgv  
Fecha de Ingreso: diciembre-2011
Ubicación: Alcoy(Alicante)
Mensajes: 189
Antigüedad: 12 años, 10 meses
Puntos: 2
Error al generar claves aleatorias

Buenas, he encontrado este código para generar claves aleatorias de un tamaño determinado en internet y de vez en cuando me da ERROR y no se por que. Os paso los códigos a ver si alguien me lo puede aclarar.

codigo:
Código PHP:
function generar_clave($longitud){ 
    
$permitidos "1234567890abcdefghijkmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
    
$i 1;
    
$password "";
    while (
$i <= $longitud) {
        
$password .= $permitidos{mt_rand(0,strlen($permitidos))};
        
$i++;
    }
    return 
$password

error:
Código HTML:
Notice: Uninitialized string offset: 61 (el error me lo marca en  $password .= $permitidos{mt_rand(0,strlen($permitidos))};)
__________________
http://www.cruzpyd.com
  #2 (permalink)  
Antiguo 25/03/2013, 13:01
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 3 meses
Puntos: 1532
Respuesta: Error al generar claves aleatorias

se supone que uses corchetes en $permitidos[mt_rand .... ] no llaves
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 25/03/2013, 13:02
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años, 7 meses
Puntos: 47
Respuesta: Error al generar claves aleatorias

No se porque te genera el error pero yo utilizo esta función

Código PHP:
Ver original
  1. function generapwd($largo=8){
  2.      $caracteres = "123456789123456789abcdefghijklmnopqrstuvwxyz";
  3.      $contrasenia = "";
  4.  
  5.      srand ((double) microtime() * 1000000);
  6.  
  7.      while ($largo){
  8.         $contrasenia .= substr( $caracteres, rand( 0, strlen( $caracteres )), 1);
  9.         $largo--;
  10.      }
  11.      return($contrasenia);
  12. }
  #4 (permalink)  
Antiguo 25/03/2013, 14:41
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 6 meses
Puntos: 528
Respuesta: Error al generar claves aleatorias

En sí el error es por que el texto que tienes mide 61 caracteres (0-60 posiciones) y si llegas a solicitar la posición 61 o posterior ésta no existe.
  #5 (permalink)  
Antiguo 25/03/2013, 14:44
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años, 7 meses
Puntos: 47
Respuesta: Error al generar claves aleatorias

Cita:
Iniciado por ocp001a Ver Mensaje
En sí el error es por que el texto que tienes mide 61 caracteres (0-60 posiciones) y si llegas a solicitar la posición 61 o posterior ésta no existe.
Si tienes mucha razón no habia visto ese "Pequeño detalle" para colmo ha iniciado el contador en 1...
  #6 (permalink)  
Antiguo 26/03/2013, 03:29
Avatar de javicruzgv  
Fecha de Ingreso: diciembre-2011
Ubicación: Alcoy(Alicante)
Mensajes: 189
Antigüedad: 12 años, 10 meses
Puntos: 2
Respuesta: Error al generar claves aleatorias

maycolalvarez. Funciona igual con los dos simbolos.
ocp001a. Como puedo arreglarlo?
alex1084. El contador esta iniciado en 1 para que la longitud sea la correcta.
__________________
http://www.cruzpyd.com
  #7 (permalink)  
Antiguo 26/03/2013, 14:11
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años, 7 meses
Puntos: 47
Respuesta: Error al generar claves aleatorias

mira la funcion que te deje funciona a la perfeccion y si inicias el contador en 0 tu condicion debe ser $i < $longitud
  #8 (permalink)  
Antiguo 27/03/2013, 03:12
Avatar de javicruzgv  
Fecha de Ingreso: diciembre-2011
Ubicación: Alcoy(Alicante)
Mensajes: 189
Antigüedad: 12 años, 10 meses
Puntos: 2
Respuesta: Error al generar claves aleatorias

Gracias Alex, si que es verdad que la tuya no me falla.
__________________
http://www.cruzpyd.com
  #9 (permalink)  
Antiguo 27/03/2013, 08:37
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años, 7 meses
Puntos: 47
Respuesta: Error al generar claves aleatorias

Cita:
Iniciado por javicruzgv Ver Mensaje
Gracias Alex, si que es verdad que la tuya no me falla.
Ok entonces te agradecería marques como solucionado el post

Etiquetas: claves
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 10:42.