Foros del Web » Programando para Internet » PHP »

Pasar arrays en sesiones

Estas en el tema de Pasar arrays en sesiones en el foro de PHP en Foros del Web. Hola a todos, quiero hacer un pequeño examen de reconocimiento de fotos; selecciono unas 20 fotos de la base de datos, que acumulo en un ...
  #1 (permalink)  
Antiguo 07/11/2006, 09:39
 
Fecha de Ingreso: febrero-2004
Ubicación: Asturias
Mensajes: 171
Antigüedad: 20 años, 2 meses
Puntos: 0
Pasar arrays en sesiones

Hola a todos, quiero hacer un pequeño examen de reconocimiento de fotos; selecciono unas 20 fotos de la base de datos, que acumulo en un array de sesion, y luego el usuario ha de ir escribiendo qué es cada foto . El problema es que sólo sale en la primera foto todo bien,en la segunda ocurre como que la sesion ha volado ya que no hay variables conservadas de ella.

Este es el codigo:
Código PHP:
<?
if (isset ($_GET['iniciar'])) {
    
session_name($visu);
    
session_start();     
    
session_cache_limiter('nocache,private');    
}
if (isset (
$_POST['salida']) and ($_POST['salida']=="salida")) {
    
session_name($visu);
    
session_start();
    
session_destroy();
    
$_POST['salida']=="";
}
?>

...

                <?
                
if ($_GET['primera']=="uno"){
                
                    
$_SESSION['vez']=0;
        
                    
$_SESSION['categoria']=$_GET['categoria'];
                    
$_SESSION['dificultad']=$_GET['dificultad'];
                    
$_SESSION['numesp']=$_GET['numesp'];
                    if (
$_GET['numesp']=="10"$_SESSION['numesp']=10;
                    if (
$_GET['numesp']=="20"$_SESSION['numesp']=20;
                    if (
$_GET['numesp']=="30"$_SESSION['numesp']=30;
                    
$limite=$_SESSION['numesp'];
    
                    require_once(
'../../Connections/Astur.php');     
                    
mysql_select_db($database_Astur$Astur);
                    
                    if (
$_GET['categoria']=="flora") {
                    
$_pagi_sql="SELECT * FROM astur WHERE ";
                         
$_pagi_sql.="(Reino = 'Protoctista' or ";
                         
$_pagi_sql.="Reino = 'Fungi' or ";
                         
$_pagi_sql.="Reino = 'Plantae') AND Fotowww1 IS NOT NULL AND ";
                         }            
                            
                    if (
$_GET['categoria']=="fauna") {
                    
$_pagi_sql="SELECT * FROM astur WHERE ";
                         
$_pagi_sql.="Reino = 'Animalia' AND Fotowww1 IS NOT NULL AND ";
                         }                        
                         
                    if (
$_GET['dificultad']=="basico") {
                         
$_pagi_sql.="Tipo LIKE 'K' ";                
                    }
                    
                    if (
$_GET['dificultad']=="normal") {                
                         
$_pagi_sql.="Tipo IS NOT NULL ";                
                    }                

                    if (
$_GET['dificultad']=="avanzado") {                
                    }        
                                        
                    
$_pagi_sql.="ORDER BY RAND() LIMIT 0,$limite";            

                    
$posicion=0;
                    
$visuconsulta mysql_query($_pagi_sql) or die ("Error en la consulta de conteo de registros. Mysql dijo: <strong>".mysql_error()."</strong>");
                    
$_SESSION['exvisuesp'] = array();
                    
$_SESSION['exvisufoto'] = array();
                    while (
$row mysql_fetch_array($visuconsulta)){  
                        
$_SESSION['exvisuesp'][$posicion]=$row['Especie'];
                        
$_SESSION['exvisufoto'][$posicion]=$row['Fotowww1'];
                        echo 
$row['Tipo']." ".$row['Especie']." ".$row['Reino']." ".$row['Fotowww1']." ".$_SESSION['exvisuesp'][$posicion]."<br/>";
                        
$posicion=$posicion+1;
                    }
                                
                }
                
                    
                    if (isset(
$_GET['vez'])) $_SESSION['vez']=$_GET['vez'];
                    
                    if (isset(
$_SESSION['vez'])) {
                    echo 
"Foto ".$_GET['vez'];
                    echo 
"<div class=\"imagenflotantedrch\">
                    <img src=\"../../Imagenes/Astur/"
.$_SESSION['exvisufoto'][$_SESSION['vez']].".jpg\" alt=\"Foto ".$_SESSION['vez']."\" /> ";
                    echo 
"</div>".$_SESSION['exvisufoto'][$_SESSION['vez']].$_SESSION['numesp'];
                    
                    
$_SESSION['vez']=$_SESSION['vez']+1;
                    
?>
                    
                    <form class="formulariobusc" method="get" action="http://www.asturnatura.com/asturnaturaDB/visu/visu.php">
                    <fieldset>                    
                    <label for="especieintro">¿Qué especie cree que es?
                    <input id="escriba" name="especieintro" type="text" value="especie" /></label>
                    <input type="hidden" name="vez" value="<? echo $_SESSION['vez']; ?>" />
                    <input type="hidden" name="iniciar" value="inicio" />
                    <input name="continuar" type="submit" class="redaccion" value="Continuar" />
                    </fieldset>    
                    </form>
                    
                    
                    <br/><br/>
                    <form class="formulariogal2" action="visu.php?salida=salida" method="post"><br/>
                    <fieldset>
                    <input type="hidden" name="salida" value="salida" />
                    <label for='salir'>
                    <input name="salir" type="submit" value="Acabar examen" />
                    </label>
                    </fieldset>
                    </form>
                    
                    <?
                    
                    
}
                    
?>
un ejemplo de su funcionamiento lo podeis ver enhttp://www.asturnatura.com/asturnaturaDB/visu/visu.php

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 22:50.