Este es el codigo:
Código:
Estoy tratando de buscar cual es mi error pero no lo encuentro...<?php
$cadena = "abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ1234567890()[]?¿¡!$%&/\-_:;.,{}+€¬@#";
$cantidad_caracteres = strlen($cadena);
function GenerarCadena($longitud){
for($contador=0;$contador<$longitud;$contador++){
$posicion_caracter = rand(0,$cantidad_caracteres);
$cad.= substr($cadena,$posicion_caracter,1);
}
return $cad;
}
$generar = GenerarCadena(8);
echo $generar;
?>
Al parecer hasta el for todo funciona bien, pero no me funciona el rand.
Es decir, si debajo del rand(0,$cantidad_caracteres); le pongo en echo $posicion_caracter van a ver que les va a imprimir muchos 0, en el caso del ejemplo va a imprimir 8 ceros.. Lo qu no se a que se debe dado que los 2 parametros que le paso al rand son correctos, comenzar desde 0 y el segundo parametro es una variable que es un entero.. si hacen un echo de $cantidad_caracteres les va a mostrar correctamente la cantidad.
En fin, a ver si me dicen alguna solucion.
EDITO: Me sucedio algo rar... Antes de la funcion puse el siguiente codigo:
Código:
Y me genero un numero aleatorio correctamente entre 0 y la cantidad de caracteres de la cadena. Pero si pongo ese mismo codigo dentro de la funcion o dentro del for me genera un 0... $prueba = rand(0,$cantidad_caracteres); echo $prueba;


