|
|
·
Skindario
Buscar en el Foro Buscar Tags
Portal
Foro
Usuario
Foro
Normas
RSS
Etiquetas
Avatares
Rangos
Eventos
Staff
Entrevistas
Noticias
Caretos
F.A.Q
Subforos Privados
Estadisticas
Estadisticas
Usuarios
OnLine
Actividad
Funciones
Favoritos
P. Inicio
Imprimir
Buscar
Afiliados
¿Tu Web Aquí?
Comunidad ESDLA
Foros DWP
Websmasters Foro
Mundo Deluxe
Photosherox
Descargas-V
Enlázanos

Como almacenar numeros generados aleatoriamente?
Haz clic para publicar un nuevo tema Haz clic para añadir una nueva respuesta · Portal · Foros · PHP

Buscar · Tags · Imágenes · Usuarios · Fisgona · F.A.Q.

Ir a la página: 1, 2 última
22 mensajes. Página 1 de 2 
Autor Mensaje 
-TiTo_
Webmaster Habitual
Webmaster Habitual

Haz clic para ver el perfil del usuario
Mensajes: 33
Desde: 21/Oct/2004
Como almacenar numeros generados aleatoriamente?

Buenas,

En un codigo que estoy haciendo uso la funcion rand para generar numeros aleatorios cada vez que se ejecuta el codigo, sin guardarlos en base de datos mysql. Quisera poder mostrar por ejemplo los 10 ultimos generados, no globales sino para cada usuario. Es decir que yo cada vez que entre me salgan los 10 ultimos numeros que han salido cuando yo he entrado, y a cada user lo mismo. No hace falta que lo recuerde siempre, sino cada vez que entre y empiece a hacer uso del script.

Creo que lo mas adecuado es el uso de cookies pero no tengo muy claro el sistema, a alguno se os ocurre?

gracias

17/Mar/2008 17:53 GMT+1 Perfil ·  Privado · Desconectado ·  Web
EffectedCard
Administrador
Administrador

Haz clic para ver el perfil del usuario

Usuario PRO Usuario PRO
Mensajes: 9.013
Desde: 16/Oct/2004
RE: Como almacenar numeros generados aleatoriamente?

¿Guardar cookies sabes?

A mí lo que se me ocurre es que guardes en una cookie única los números separados por una barrita (|). Quedaría algo así:

10|2|3|6|5|9|12|3|4|6

Para recoger los datos, tu cogerías la cookie y obtendrías la info de la cookie y separarías los números en forma de array con explode().

<?
$cookie = ; //codigo para coger la cookie
$numero = explode("|", $cookie);
$num = sizeof($numero);

for($i=0;$i<$num;$i++){
echo"Número $i: $numero[$i] <br />";

?>

Ahí hemos mostrado los números de la cookie.


Para guardarlos, tendrías que usar el código de las cookies para guardarlo pero teniendo en cuenta algunas cosas.

~ Si la cookie no existe, la creamos y añadimos únicamente el número sin barras. Quedando, por ejemplo, 5.


~ Si la cookie existe, has de comprobar cuántos números hay registrados. Para ello, haces el explode y miras el largo del array.

<?
$cookie = ; //codigo para coger la cookie
$numero = explode("|", $cookie);
$num = sizeof($numero);

if($num < 10){
//si es menor de 10
}else{
//si ya hay 10
}
?>


~~~~ Hecho esto, si hay menos de diez números, simplemente añadiríamos el siguiente. Cogemos los datos de la vieja cookie y añadimos el número nuevo. Después borramos la cookie y creamos una nueva. Suponiendo que $aleatorio es el número que ha resultado haciendo el aleatorio:

<?
$cookie = ; //código para coger los datos
$resultado = $cookie."|".$aleatorio;

//borro cookie
//creo nueva cookie
?>



~~~~ Si ya hubiera diez, habríamos de borrar el primero. Para ello se me ocurre separarlo en arrays y poner sólo del 1 al 9 (empieza con el 0 siempre). Así quedaría:

<?
$cookie = ; //codigo para coger la cookie
$numero = explode("|", $cookie);

$resultado = $numero[1] . $numero[2] . $numero[3] . $numero[4] . $numero[5] . $numero[6] . $numero[7] . $numero[8] . $numero[9] . "|" . $aleatorio;

//borramos cookie
//creamos nueva cookie

?>







Espero que te sirva. No te pongo los códigos para el manejo de cookies porque nunca se me ha dado demasiado bien. De todas formas, en google los encuentras seguro.
20/Mar/2008 16:56 GMT+1 Perfil ·  Privado · Conectado ·  Web
-TiTo_
Webmaster Habitual
Webmaster Habitual

Haz clic para ver el perfil del usuario
Mensajes: 33
Desde: 21/Oct/2004
RE: Como almacenar numeros generados aleatoriamente?

Muchas gracias effect, me alegra ver que el foro sigue tan disponible como antaño,

un saludo

23/Mar/2008 12:56 GMT+1 Perfil ·  Privado · Desconectado ·  Web
EffectedCard
Administrador
Administrador

Haz clic para ver el perfil del usuario

Usuario PRO Usuario PRO
Mensajes: 9.013
Desde: 16/Oct/2004
RE: Como almacenar numeros generados aleatoriamente?

Un Placer tenerte por aquí.

Y si tarde tres días fue porque estaba de viaje =)


Un Saludo y Cuídate
23/Mar/2008 13:21 GMT+1 Perfil ·  Privado · Conectado ·  Web
-TiTo_
Webmaster Habitual
Webmaster Habitual

Haz clic para ver el perfil del usuario
Mensajes: 33
Desde: 21/Oct/2004
RE: Como almacenar numeros generados aleatoriamente?

Veamos , segun tu consejo effect he llegado a este codigo:

<?
$numero = rand (0, 36);
echo $numero;
?>
<br><br><a href="index.php">Generar</a>
<?
echo $_COOKIE["listado"];

$listado = $_COOKIE["listado"];
$elemento = explode("|", $listado);
$num = sizeof($elemento);

if(!$_COOKIE["listado"]){
setcookie("listado",$numero,time()+604800);
}

else{

if($num<10){
unset($_COOKIE["listado"]);
$valor = $numero."|".$listado;
setcookie("listado",$valor,time()+604800);
}

else{
unset($_COOKIE["listado"]);
$valor = $numero."|".$elemento[0]."|".$elemento[1]."|".$elemento[2]."|".$elemento[3]."|".$elemento[4]."|".$elemento[5]."|".$elemento[6]."|".$elemento[7]."|".$elemento[8];
setcookie("listado",$valor,time()+604800);
}

}
?>



Pero me da el error Warning: Cannot modify header information - headers already sent by (output started..... on line 21

Sabes por donde se me escapa algo? supongo que estoy haciendo algo mal al crear las cookies...

gracias y un saludo

27/Mar/2008 21:16 GMT+1 Perfil ·  Privado · Desconectado ·  Web
-TiTo_
Webmaster Habitual
Webmaster Habitual

Haz clic para ver el perfil del usuario
Mensajes: 33
Desde: 21/Oct/2004
RE: Como almacenar numeros generados aleatoriamente?

Vale, error tontisimo, bastaba con poner el codigo de las cookies al principio dle archivo,

un saludo

27/Mar/2008 21:29 GMT+1 Perfil ·  Privado · Desconectado ·  Web
EffectedCard
Administrador
Administrador

Haz clic para ver el perfil del usuario

Usuario PRO Usuario PRO
Mensajes: 9.013
Desde: 16/Oct/2004
RE: Como almacenar numeros generados aleatoriamente?

Otra opción para solucionarlo, es poner esto en la línea uno:
<? ob_start(); ?>

y esto otro en la última:
<? ob_end_flush(); ?>


Permite enviar cabeceras después de cargar otros códigos.




Ah y yo en vez de mostrarselo así de "chapucero":
echo $_COOKIE["listado"];
Se lo decoraría un poco, separaría los números y le indicaría dónde empieza cada uno y dónde acaba, etcétera
27/Mar/2008 21:49 GMT+1 Perfil ·  Privado · Conectado ·  Web
-TiTo_
Webmaster Habitual
Webmaster Habitual

Haz clic para ver el perfil del usuario
Mensajes: 33
Desde: 21/Oct/2004
RE: Como almacenar numeros generados aleatoriamente?

Si, si eso lo voy a hacer pero la verdad es que aun no consigo que me funcione el codigo. Ya he conseguido que no me de ese error, pero la cookie no coge los valores, es decir se queda vacia... alguna idea de por que?

27/Mar/2008 21:52 GMT+1 Perfil ·  Privado · Desconectado ·  Web
EffectedCard
Administrador
Administrador

Haz clic para ver el perfil del usuario

Usuario PRO Usuario PRO
Mensajes: 9.013
Desde: 16/Oct/2004
RE: Como almacenar numeros generados aleatoriamente?

La verdad es que no, la estructura parece correcta.

¿Qué has hecho para solucionar el error? Prueba a poner los dos códigos que te he dicho, aunque el error ya no aparezca, siempre es aconsojable ponerlos (o eso me enseñaron a mí).
28/Mar/2008 01:12 GMT+1 Perfil ·  Privado · Conectado ·  Web
-TiTo_
Webmaster Habitual
Webmaster Habitual

Haz clic para ver el perfil del usuario
Mensajes: 33
Desde: 21/Oct/2004
RE: Como almacenar numeros generados aleatoriamente?

Pues basicamente que antes habia un codigo html antes que este, y ahora es lo primero qe esta en el archivo. Ya que lei por ahi que hay que ponerlo antes de que se ejecute nada..

28/Mar/2008 09:19 GMT+1 Perfil ·  Privado · Desconectado ·  Web
EffectedCard
Administrador
Administrador

Haz clic para ver el perfil del usuario

Usuario PRO Usuario PRO
Mensajes: 9.013
Desde: 16/Oct/2004
RE: Como almacenar numeros generados aleatoriamente?

Ajá, pero tú sí que sigues enviando cookies después, ¿no?

setcookie("listado",$valor,time()+604800);


¿Has puesto lo que te he dicho? Es que si funciona, no seguimos pensando; si no funciona, pensamos qué puede ser.
28/Mar/2008 12:34 GMT+1 Perfil ·  Privado · Conectado ·  Web
-TiTo_
Webmaster Habitual
Webmaster Habitual

Haz clic para ver el perfil del usuario
Mensajes: 33
Desde: 21/Oct/2004
RE: Como almacenar numeros generados aleatoriamente?

Nada, he puesto los codigos y sigue igual la cookie no coge los valores

29/Mar/2008 13:28 GMT+1 Perfil ·  Privado · Desconectado ·  Web
EffectedCard
Administrador
Administrador

Haz clic para ver el perfil del usuario

Usuario PRO Usuario PRO
Mensajes: 9.013
Desde: 16/Oct/2004
RE: Como almacenar numeros generados aleatoriamente?

El echo $_COOKIE["listado"]; no muestra ningún valor, es eso, ¿no?

¿Puedes subirlo a un servidor para que lo pruebe?
29/Mar/2008 14:30 GMT+1 Perfil ·  Privado · Conectado ·  Web
-TiTo_
Webmaster Habitual
Webmaster Habitual

Haz clic para ver el perfil del usuario
Mensajes: 33
Desde: 21/Oct/2004
RE: Como almacenar numeros generados aleatoriamente?

Efectivamente, el script lo tengo subido en

http://deltito.es/ruleta/index.php

29/Mar/2008 14:32 GMT+1 Perfil ·  Privado · Desconectado ·  Web
EffectedCard
Administrador
Administrador

Haz clic para ver el perfil del usuario

Usuario PRO Usuario PRO
Mensajes: 9.013
Desde: 16/Oct/2004
RE: Como almacenar numeros generados aleatoriamente?

Te cuento, he comprobado las cookies y si que las guarda perfectamente.

16%7C32%7C16%7C3%7C29

El problema es que transforma | por %7C. Así que, dos opciones, en vez de usar la barra | usas un simple espacio o en vez de la barra | su código raro %7C. Mejor lo de los espacios.


PD: Me ha gustado mucho lo de la ruleta



Editado por EffectedCard, Sábado, 29 de Marzo de 2008, 14:37
29/Mar/2008 14:37 GMT+1 Perfil ·  Privado · Conectado ·  Web
-TiTo_
Webmaster Habitual
Webmaster Habitual

Haz clic para ver el perfil del usuario
Mensajes: 33
Desde: 21/Oct/2004
RE: Como almacenar numeros generados aleatoriamente?

Muchas gracias effect,

no se si lo he entendido bien porque he modificado justo donde antes estaba | por lo de %7C y por un espacio y sigue sin funcionar, quizas lo estoy haciendo mal? es decir en plan

$listado=$_COOKIE["listado"];
$elemento=explode(" ", $listado); // con el espacio
$num=sizeof($elemento);

lo de la ruleta es un proyecto en el que estoy trabajando ojala os llegue a los oidos algun dia ;)

29/Mar/2008 14:44 GMT+1 Perfil ·  Privado · Desconectado ·  Web
EffectedCard
Administrador
Administrador

Haz clic para ver el perfil del usuario

Usuario PRO Usuario PRO
Mensajes: 9.013
Desde: 16/Oct/2004
RE: Como almacenar numeros generados aleatoriamente?

Cogiendo tu código de arriba, quedaría así:

<?
$numero = rand (0, 36);
echo $numero;
?>
<br><br><a href="index.php">Generar</a>
<?
print $_COOKIE["listado"];

$listado = $_COOKIE["listado"];
$elemento = explode(" ", $listado);
$num = sizeof($elemento);

if(!$_COOKIE["listado"]){
setcookie("listado",$numero,time()+604800);
}

else{

if($num<10){
unset($_COOKIE["listado"]);
$valor = $numero." ".$listado;
setcookie("listado",$valor,time()+604800);
}

else{
unset($_COOKIE["listado"]);
$valor = $numero." ".$elemento[0]." ".$elemento[1]." ".$elemento[2]." ".$elemento[3]." ".$elemento[4]." ".$elemento[5]." ".$elemento[6]." ".$elemento[7]." ".$elemento[8];
setcookie("listado",$valor,time()+604800);
}

}
?>

Luego te faltaría hacerle los cambios como los dos códigos esos, la ruleta, etcétera.


De lo que tengo miedo es que te cambie los espacios por &nbsp; pero no creo.
29/Mar/2008 15:20 GMT+1 Perfil ·  Privado · Conectado ·  Web
-TiTo_
Webmaster Habitual
Webmaster Habitual

Haz clic para ver el perfil del usuario
Mensajes: 33
Desde: 21/Oct/2004
RE: Como almacenar numeros generados aleatoriamente?

Na tio ni con espacio ni con .... ahora mismo lo tengo en el servidor con por si quieres comprobar algo,

un saludo

29/Mar/2008 19:11 GMT+1 Perfil ·  Privado · Desconectado ·  Web
EffectedCard
Administrador
Administrador

Haz clic para ver el perfil del usuario

Usuario PRO Usuario PRO
Mensajes: 9.013
Desde: 16/Oct/2004
RE: Como almacenar numeros generados aleatoriamente?

Lo que te decía:
35%26nbsp%3B30%26nbsp%3B20%26nbsp%3B12%26nbsp%3B7

Está cambiando los espacios por &nbsp; pero, a la vez cambia el & y el ; por %26 y %3B.

Haz una cosa, utiliza el código de antes, el de las barritas (es menos lioso). Pero cuando hagas el explode(), en vez de poner explode("|" pon explode("%7C"

Otra cosa al respecto, no pongas echo $_COOKIE tal cual, primero haz la separación y muestra todos los números separados.


Veremos si así funciona, cruzo los dedos.
29/Mar/2008 21:49 GMT+1 Perfil ·  Privado · Conectado ·  Web
-TiTo_
Webmaster Habitual
Webmaster Habitual

Haz clic para ver el perfil del usuario
Mensajes: 33
Desde: 21/Oct/2004
RE: Como almacenar numeros generados aleatoriamente?

Eres un autentico crack, ha bastado con hacer el echo con los elementos en vez de con la cookie a pelo,
muchas gracias effect, no lo habria conseguido sin tu ayuda,

un saludo

30/Mar/2008 13:55 GMT+1 Perfil ·  Privado · Desconectado ·  Web
Ir a la página: 1, 2 última
22 mensajes. Página 1 de 2 
Haz clic para ir al tema anterior Haz clic para ir al tema siguiente
Haz clic para añadir una nueva respuesta · Portal · Foros · PHP

Temas similares Autor#VisitasÚltimo post
Como . . ?09/Jul/2006, 22:44
Jorge-Elsa
 3 20614/Jul/2006, 22:51
EffectedCard Ir al último mensaje del tema
COMO LO AGO??25/Ene/2006, 20:58
Arweeen
 1 19325/Ene/2006, 21:02
EffectedCard Ir al último mensaje del tema
Como configurar config05/Feb/2006, 19:04
gato2000
 2 62205/Feb/2006, 19:45
EffectedCard Ir al último mensaje del tema
Como instalar un PHP NUKE?17/Jun/2008, 22:01
Corvo_07
 5 22119/Jun/2008, 01:53
Corvo_07 Ir al último mensaje del tema
como conectar con mysql21/Feb/2006, 12:17
xlinpc
 8 32817/Mar/2006, 13:36
EffectedCard Ir al último mensaje del tema

Opciones:

Versión imprimible del tema
Subscríbete a este tema
Date de baja de este tema
Menear este tema en meneame.net
Ir al subforo:  

TU NO PUEDES Escribir nuevos temas en este foro
TU NO PUEDES Responder a los temas en este foro
TU NO PUEDES Editar tus propios mensajes en este foro
TU NO PUEDES Borrar tus propios mensajes en este foro

Todas las fechas y horas son GMT+1. Ahora son las 00:33

Afiliados Plus
Skindario - Soporte Webmasters, Diseño Grafico, Miarroba, Rol + RPG y Mucho Mas TuarrobaGames - Emuladores, Roms, Juegos y RPG TuarrobaEbooks - Ebooks en castellano y Audiolibros Websmasters foro MundoDeluxe Photosherox - Diseñando & Aprendiendo
¿Tu Web Aquí?
Admin: EffectedCard - Skindario, foro soporte de Tuarroba desde el 16/10/04