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;