Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Como acer Include aleatorio, pero solo una vez?

Estas en el tema de Como acer Include aleatorio, pero solo una vez? en el foro de PHP en Foros del Web. Hola primeramente buenos dias/tardes/noches Disculpen la molestia Necesito esto: Index.php incluye archivo aleatorio ej: ( php1.php , php2.php , php3.php ) Ahora que se quede ...
  #1 (permalink)  
Antiguo 27/07/2013, 10:26
 
Fecha de Ingreso: julio-2013
Mensajes: 10
Antigüedad: 10 años, 9 meses
Puntos: 0
Como acer Include aleatorio, pero solo una vez?

Hola primeramente buenos dias/tardes/noches
Disculpen la molestia
Necesito esto:

Index.php incluye archivo aleatorio ej: (php1.php,php2.php,php3.php)
Ahora que se quede con el que le haya tocado.

Es decir que al recargar la pagina no se le asigne nuevamente otro archivo distinto al que se le habia asignado anteriormente.

No se si me di a entender muy bien.
Muchas gracias
  #2 (permalink)  
Antiguo 27/07/2013, 10:32
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Como acer Include aleatorio, pero solo una vez?

Hola... tu pregunta se ha hecho muchas veces aqui... debes guardarlos en una base de datos y consultar que no haya sido asignado.
__________________
Salu2!
  #3 (permalink)  
Antiguo 27/07/2013, 10:34
 
Fecha de Ingreso: julio-2013
Mensajes: 10
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: Como acer Include aleatorio, pero solo una vez?

Cita:
Iniciado por Italico76 Ver Mensaje
Hola... tu pregunta se ha hecho muchas veces aqui... debes guardarlos en una base de datos y consultar que no haya sido asignado.
Gracias por la respiesta
No hay alguna otra forma.
Es decir usar sesiones, cookies, algo asi?

Un amigo trato de ayudarme dandome este codigo:
Cita:
<?php shuffle($a); $a = array("php1","php2","php3"); switch ($a) { case 'php2': header('Location: ./php2.php'); break; case 'php3': header('Location: ./php3.php'); break; default: header('Location: ./php1.php'); break; } ?>
Aunque no funciona correctamente.
  #4 (permalink)  
Antiguo 27/07/2013, 10:36
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Como acer Include aleatorio, pero solo una vez?

Cita:
Iniciado por delawen Ver Mensaje
Gracias por la respiesta
No hay alguna otra forma.
Es decir usar sesiones, cookies, algo asi?
Depende... tu quieres que no se repita entre usuarios distintos o que cada usuario no pueda repetir ? no te importa que cuando se pierda la sesion se puedan repetir esos numeros ?

COOKIES ? mmm
__________________
Salu2!
  #5 (permalink)  
Antiguo 27/07/2013, 10:43
 
Fecha de Ingreso: julio-2013
Mensajes: 10
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: Como acer Include aleatorio, pero solo una vez?

Cita:
Iniciado por Italico76 Ver Mensaje
Depende... tu quieres que no se repita entre usuarios distintos o que cada usuario no pueda repetir ? no te importa que cuando se pierda la sesion se puedan repetir esos numeros ?

COOKIES ? mmm
Si mira, entro a index.php me asigna php1.php
ahora, si recargo me puede asignar php2 o php3 y eso es lo que no quiero.
Si me asigno php1, quedarme con el y no repetirlo.

Si, no importa cuando la sesion se pierda se me asigne cualquier otro numero.
Si pudieras facilitarme codigo estaria muy agradecido
  #6 (permalink)  
Antiguo 27/07/2013, 11:59
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Como acer Include aleatorio, pero solo una vez?

Ahora SI.... me perdi la parte que decias INCLUDEs ! crei hablabas solo de numeros.....

Código PHP:
Ver original
  1. <?php
  2.  
  3. // Index o front controller
  4.  
  5. if (!isset($_SESSION['paginas']))
  6. {
  7.     // las paginas podrian provenir de una consulta de DB
  8.     $paginas = array('asdf','etc','etcetc','contacto');
  9.     shuffle($paginas);    
  10.     $_SESSION['paginas'] = $paginas;
  11. }
  12.  
  13.  
  14. if (!empty($_SESSION['paginas'])){
  15.     $pagina = current($_SESSION['paginas']);    
  16.     unset($_SESSION['paginas']);
  17.     include $pagina.'.php';
  18. }
__________________
Salu2!

Última edición por Italico76; 27/07/2013 a las 12:41
  #7 (permalink)  
Antiguo 27/07/2013, 13:07
 
Fecha de Ingreso: julio-2013
Mensajes: 10
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: Como acer Include aleatorio, pero solo una vez?

Gracias! pero creo que el codigo no funciona muy bien.
Al recargar, sigue el random normalmente
  #8 (permalink)  
Antiguo 27/07/2013, 13:23
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Como acer Include aleatorio, pero solo una vez?

Perdona... no tuve tiempo de probarlo... mira esta version:

Código PHP:
Ver original
  1. <?php
  2.  
  3. // Index o front controller
  4.  
  5. if (!isset($_SESSION['paginas']))
  6. {
  7.     // las paginas podrian provenir de una consulta de DB    
  8.     $_SESSION['paginas'] = array('asdf','etc','etcetc','contacto');    
  9. }
  10.  
  11.  
  12. if (!empty($_SESSION['paginas'])){
  13.     $pagina = get_pagina();
  14.     include "$pagina.php";        
  15. }else{
  16.     echo "Nada mas que incluir, lo siento";    
  17.     reset_pagina();  
  18.     $pagina = get_pagina();
  19.     include "$pagina.php";  
  20. }
  21.  
  22.  
  23. function reset_pagina()
  24. {
  25.     if (empty($_SESSION['paginas']))
  26.         // las paginas podrian provenir de una consulta de DB    
  27.         $_SESSION['paginas'] = array('asdf','etc','etcetc','contacto');  
  28. }
  29.  
  30. function get_pagina(){
  31.     $key = array_rand($_SESSION['paginas']);
  32.     $pagina = $_SESSION['paginas'][$key];    
  33.     unset($_SESSION['paginas'][$key]);    
  34.     return $pagina;
  35. }


Normalmente reviso pero estoy en medio de una mudanza jajaja
__________________
Salu2!

Última edición por Italico76; 27/07/2013 a las 13:41
  #9 (permalink)  
Antiguo 27/07/2013, 13:43
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Como acer Include aleatorio, pero solo una vez?

Se me hace mas sencillo así...

Código PHP:
Ver original
  1. <?php
  2.  
  3. if (!isset($_SESSION['pag'])) {
  4.      $paginas = array('1.php','2.php','3.php');
  5.      $pag = $paginas[array_rand($paginas)];
  6.      $_SESSION['pag'] = $pag;
  7. }else {
  8.      $pag = $_SESSION['pag'];
  9. }
  10.  
  11. include($pag);
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #10 (permalink)  
Antiguo 27/07/2013, 13:46
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Como acer Include aleatorio, pero solo una vez?

Cita:
Como acer Include aleatorio, pero solo una vez?
@Nemutagk: Es mas sencillo porque porque tu codigo deja repetir la pagina a incluir....... y si la dejas repetir... para que almacenas en $_SESSION ? tranquilo... tambien meto la pata...

Cita:
Iniciado por Nemutagk Ver Mensaje
Se me hace mas sencillo así...

Código PHP:
Ver original
  1. <?php
  2.  
  3. if (!isset($_SESSION['pag'])) {
  4.      $paginas = array('1.php','2.php','3.php');
  5.      $pag = $paginas[array_rand($paginas)];
  6.      $_SESSION['pag'] = $pag;
  7. }else {
  8.      $pag = $_SESSION['pag'];
  9. }
  10.  
  11. include($pag);
__________________
Salu2!
  #11 (permalink)  
Antiguo 27/07/2013, 14:03
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Como acer Include aleatorio, pero solo una vez?

Cita:
Iniciado por Italico76
...@Nemutagk: Es mas sencillo porque porque tu codigo deja repetir la pagina a incluir....... y si la dejas repetir... para que almacenas en $_SESSION ? tranquilo... tambien meto la pata...
No te entendí del todo, pero si entendí lo que pide el amigo, y es asignar un archivo seleccionado al "azar" la primera vez que accede al archivo, para después que vuelva acceder a la página se cargue la página seleccionada anteriormente (no se vuelva a asignar otro archivo), y eso es lo que hace el código que deje...
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #12 (permalink)  
Antiguo 27/07/2013, 14:13
 
Fecha de Ingreso: julio-2013
Mensajes: 10
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: Como acer Include aleatorio, pero solo una vez?

Cita:
Iniciado por Nemutagk Ver Mensaje
No te entendí del todo, pero si entendí lo que pide el amigo, y es asignar un archivo seleccionado al "azar" la primera vez que accede al archivo, para después que vuelva acceder a la página se cargue la página seleccionada anteriormente (no se vuelva a asignar otro archivo), y eso es lo que hace el código que deje...
Si de hecho es exactamente lo que quiero.

Entrar, escoger un archivo aleatorio, y que al recargar se incluya el archivo elegido previamente.

Pero tu codigo sigue incluyendo los demas archivos
Al igual que mi amigo Italico76 , sigue incluyendo un archivo dinstito cada vez que se recarga la pagina.
  #13 (permalink)  
Antiguo 27/07/2013, 14:19
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Como acer Include aleatorio, pero solo una vez?

Cita:
Iniciado por delawen
...Pero tu codigo sigue incluyendo los demas archivos...
Donde vez que se incluyen los demás archivos? solo se incluye 1, el que es escogido de manera "aleatoria", este se guarda en la sesión y posteriormente es el único que se selecciona, al menos mientras viva la variable de sesión, para que se entienda mas fácil...

Tengo un array con 3 archivos:

0=1.php
1=2.php
2=3.php

Supongamos que escogemos un numero del 0 al 2 de manera aleatoria, supongamos que es el 1, el cual indica que es el archivo 2.php, entonces quedaría $paginas[1], después lo que haces es guardar ese valor dentro de la variable de sesión para que posteriormente solo se agregue el archivo antes seleccionado sin importar si se refresca la página o se vuelve a entrar posteriormente SIEMPRE Y CUANDO la variable de sesión no sea destruida!
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #14 (permalink)  
Antiguo 27/07/2013, 14:22
 
Fecha de Ingreso: julio-2013
Mensajes: 10
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: Como acer Include aleatorio, pero solo una vez?

Cita:
Iniciado por Nemutagk Ver Mensaje
Donde vez que se incluyen los demás archivos? solo se incluye 1, el que es escogido de manera "aleatoria", este se guarda en la sesión y posteriormente es el único que se selecciona, al menos mientras viva la variable de sesión, para que se entienda mas fácil...

Tengo un archivo con 3 archivos:

0=1.php
1=2.php
2=3.php

Supongamos que escogemos un numero del 0 al 2 de manera aleatoria, supongamos que es el 1, el cual indica que es el archivo 2.php, entonces quedaría $paginas[1], después lo que haces es guardar ese valor dentro de la variable de sesión para que posteriormente solo se agregue el archivo antes seleccionado sin importar si se refresca la página o se vuelve a entrar posteriormente SIEMPRE Y CUANDO la variable de sesión no sea destruida!

http://kekochat.com/testear.php
aqui esta =S

EDITO:
Lo siento quizas era el cache. FUNCIONA!!!

Muchas gracias amigos!!
  #15 (permalink)  
Antiguo 27/07/2013, 14:28
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Como acer Include aleatorio, pero solo una vez?

No muestras el código que usas, pero a mi me sigue mostrando "soy el archivo 3" sin importar cuantas veces refresque la página, ahora, si elimino la cookie me asigna un archivo diferente, no se a que te problema te refieres...
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #16 (permalink)  
Antiguo 27/07/2013, 14:56
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Como acer Include aleatorio, pero solo una vez?

@Nemutagk: que pena.... metí la pata

Me alegro el amigo soluciono!
__________________
Salu2!

Etiquetas: acer, include
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:30.