Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Condicional para crear un código aleatorio

Estas en el tema de Condicional para crear un código aleatorio en el foro de PHP en Foros del Web. Hola a todos, Me estoy pegando con un código que he modificado y no consigo hacer que entre en un condicional no sé porqué. La ...
  #1 (permalink)  
Antiguo 11/02/2016, 04:08
Avatar de majete  
Fecha de Ingreso: noviembre-2007
Mensajes: 96
Antigüedad: 16 años, 5 meses
Puntos: 2
Pregunta Condicional para crear un código aleatorio

Hola a todos,
Me estoy pegando con un código que he modificado y no consigo hacer que entre en un condicional no sé porqué.

La página revisa si se ha recibido por POST un código de tres cifras (mediante un formulario en la página anterior), si es así, le añade un aleatorio de 4 cifras, si no, el código que pone de tres cifras antes del aleatorio es WEB para identificar la gente que no tiene código.

Código PHP:
<?php
session_start
(); //iniciamos el manejo de sesiones
  
  // Creamos un alfanumerico de 4 cifras
  
$caracteres 'ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890';
  
$randomear str_shuffle($caracteres);
  
$el_id substr($randomear14);

if(isset(
$_POST['codigo'])) //si se ha introducido un código, entonces...
{
  
$_SESSION['idCuestionario'] = $_POST['codigo']. $el_id;
  unset(
$_POST['codigo']);
  
} else 
//en caso que la variable de sesion no exista es que es usuario de web
{
  
// Usuario de web. 
  
$_SESSION['idCuestionario'] = "WEB"$el_id;
}
?>
El tema es que en la página anterior si pongo un código de tres cifras, todo funciona perfectamente, pero si no lo pongo, no me pone la letras WEB delante y tan sólo me genera el código aleatorio.

Resultado de ejemplos con introduciendo código
ANA3673
PED9871
TRE8761
...
Si no me pone
3567
2497
1087

es decir que no añade delante "WEB" para crear el código WEB3567, WEB2497, etc.

Lo curioso es que no tengo ni idea de dónde coge el dato para sólo mostrar el código sin el WEB deltante!

Lo imprimo con
Código PHP:
<?php
print_r 
($_SESSION);
?>
Muchas gracias por la ayuda!
Juan Carlos
  #2 (permalink)  
Antiguo 11/02/2016, 05:08
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: Condicional para crear un código aleatorio

a mi me funciono perfecto, me generó este codigo WEBDL06, habria que revisar no se alguna configuracion o la manera en que envias los datos
__________________
[email protected]
HITCEL
  #3 (permalink)  
Antiguo 11/02/2016, 05:55
Avatar de majete  
Fecha de Ingreso: noviembre-2007
Mensajes: 96
Antigüedad: 16 años, 5 meses
Puntos: 2
Respuesta: Condicional para crear un código aleatorio

Haciendo pruebas he visto que la primera vez que abres la página con un ordenador, si no pones código genera un WEBXXXX por primera vez... pero cuando vulves de nuevo, sólo muestra XXXX... grrrrrr!! no lo veo!!

Tiene que ser algo del

if(isset($_POST['codigo']))

Que hace que siempre lo coja a pesar de que hay un

unset($_POST['codigo']);

Para eliminar el dato del POST

Gracias!!
  #4 (permalink)  
Antiguo 11/02/2016, 06:00
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: Condicional para crear un código aleatorio

prueba asi:
Código PHP:
Ver original
  1. session_start(); //iniciamos el manejo de sesiones
  2.  
  3.   // Creamos un alfanumerico de 4 cifras
  4.   $caracteres = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890';
  5.   $randomear = str_shuffle($caracteres);
  6.   $el_id = substr($randomear, 1, 4);
  7.  
  8. if(isset($_POST['codigo'])) //si se ha introducido un código, entonces...
  9. {
  10.   $_SESSION['idCuestionario'] = $_POST['codigo']. $el_id;
  11.   $_POST['codigo'] == "";
  12.  
  13. } else //en caso que la variable de sesion no exista es que es usuario de web
  14. {
  15.   // Usuario de web.
  16.   $_SESSION['idCuestionario'] = "WEB". $el_id;
  17. }
  18. echo $_SESSION['idCuestionario'];
__________________
[email protected]
HITCEL
  #5 (permalink)  
Antiguo 11/02/2016, 06:16
Avatar de majete  
Fecha de Ingreso: noviembre-2007
Mensajes: 96
Antigüedad: 16 años, 5 meses
Puntos: 2
Respuesta: Condicional para crear un código aleatorio

Me has dado una idea!!

En lugar de preguntar en el if "isset" pregunto si está vacío

if($_POST['codigo']<>"")

y así funciona perfectamente... muchas gracias!!

Etiquetas: condicional, formulario, variable
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 18:31.