Foros del Web » Programando para Internet » PHP »

Funcion datos aleatorios

Estas en el tema de Funcion datos aleatorios en el foro de PHP en Foros del Web. Hola amigos: Necesito crear una funcion que genere un alfanumérico (dígitos y/o números), que su longitud no exceda los 12 caracteres, no debe contener caracteres ...
  #1 (permalink)  
Antiguo 25/11/2009, 05:32
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Pregunta Funcion datos aleatorios

Hola amigos:

Necesito crear una funcion que genere un alfanumérico (dígitos y/o números), que su longitud no exceda los 12 caracteres, no debe contener caracteres especiales ni espacios y no debe repetirse. Esto lo debo guardar en una variable.

Investigando aqui y allá encontré la función para eliminar todos los caracteres que no sean numeros y letras:

Código PHP:
<?
$cadena 
"Estos serian algunos numeros 12345, texto y simbolos !£$%^&";
$nueva_cadena ereg_replace("[^A-Za-z0-9]"""$cadena);
echo 
$nueva_cadena
?>
y esta otra que elimina espacios vacios al final de una cadena:

Código PHP:
<?
$cadena 
"Este seria el texto con espacio al final ";
$contraida trim($cadena);
echo 
$contraida;
?>
pero no se como colocar todo junto en una funcion para que me genere todo lo que mencioné al principio, ni como hacer para que se genere aleatoriamente y que sea único.

Por favor podrían orientarme al respecto. Gracias.
  #2 (permalink)  
Antiguo 25/11/2009, 06:05
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Funcion datos aleatorios

ojala te sirva ... saludos!

Código php:
Ver original
  1. echo substr(md5(rand()),0,15);
__________________
More about me...
~ @rhyudek1
~ Github
  #3 (permalink)  
Antiguo 25/11/2009, 07:03
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Funcion datos aleatorios

Hidek1 gracias por tu respuesta. Esa es la parte de generar un valor aleatorio me imagino que entre 0 y 15.

Lo que quisiera saber es como colocar las 3 cosas juntas, es decir, que solo sean numeros y letras, que no tenga espacios y que el valor no sea repetido para poder guardar el resultado en una variable.

Disculpen mi ignorancia...
  #4 (permalink)  
Antiguo 25/11/2009, 07:13
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Funcion datos aleatorios

Código php:
Ver original
  1. $valor = substr(md5(rand()),0,15);

esto te genera un valor random entre letras y numeros con una longitud de 15 caracteres
no necesitas nada mas :B
saludos!
__________________
More about me...
~ @rhyudek1
~ Github
  #5 (permalink)  
Antiguo 25/11/2009, 08:09
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Funcion datos aleatorios

ah, ok muchas gracias.

y como hago para que no se repita es decir, que sea un valor unico. Se me ocurre que despues de generarlo le ponga una condicion asi:

Código PHP:
$valor substr(md5(rand()),0,12);

if (isset(
$valor) {
echo 
'error numero de transaccion ya existe';
}
else {
$valor $valor;

Esta bien asi?
  #6 (permalink)  
Antiguo 25/11/2009, 08:17
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Funcion datos aleatorios

mmm
osea la posibilidad de que se repita es practicamente nula.. ahora podrias usar en ves de rand()
un strtotime("now")

asi te devuelve el md5 del timestamp por segundo.. asegurandote de que no se duplique..
excepto que agan muchas transacciones el mismo segundo xD!

100% eficas seria esto

Código php:
Ver original
  1. $valor = substr(md5(rand()).md5(strtotime("now")),0,12);

eso si que es imposible que se repita..

saludos!
__________________
More about me...
~ @rhyudek1
~ Github
  #7 (permalink)  
Antiguo 25/11/2009, 08:19
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Funcion datos aleatorios

ah buenisimo, mil gracias.
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 05:32.