Foros del Web » Programando para Internet » PHP »

Problema con sesiones

Estas en el tema de Problema con sesiones en el foro de PHP en Foros del Web. Estoy haciendo una pagina en la que hay una sección que mostrara juegos ordenados por tipos, que para ver un juego tendras que pinchar sobre ...
  #1 (permalink)  
Antiguo 14/05/2008, 14:41
Avatar de Aimarejada  
Fecha de Ingreso: abril-2006
Mensajes: 207
Antigüedad: 18 años
Puntos: 0
Problema con sesiones

Estoy haciendo una pagina en la que hay una sección que mostrara juegos ordenados por tipos, que para ver un juego tendras que pinchar sobre este. Como no queria tener una pagina para cada juego lo que hice fue poner en el enlace una variable de sesión que cogiera el id del juego, de tal forma que al recargar la pagina en un else mostrara solo ese juego.

Código:
<?php 
session_start();
$_SESSION['juego'];

<html>
<head>

</head>

<body>

			<?php
//Comprueba que la sesión valga 0 y si es asi muestra los juegos por categorias, sino tiene un 0 es que tiene un id de un juego y va al else.
 
			if ($_SESSION['juego']=="0") {
							
			?>

					<?php //Primera categoria de juegos
							$sent =  sprintf("SELECT * FROM juegos WHERE tipo='Juegos con monedas'");
							$res = mysql_query($sent);
							$fila = mysql_fetch_row($res);
							while($fila){
					?>

//Enlace donde le digo que recarge la pagina y le asigne a la variable juego el id del juego
						<a href="juegos.php" <?php $_SESSION['juegos']=$fila[0]; ?>> <?php echo  $fila[1] ?></a>
					
					
					<?php 
						$fila = mysql_fetch_row($res);
						} 
					?>
		
			

			
					<?php //Segunda categoria de juegos
							$sent =  sprintf("SELECT * FROM juegos WHERE tipo='Juegos con dados'");
							$res = mysql_query($sent);
							$fila = mysql_fetch_row($res);
							while($fila){
					?>
									
						<a href="juegos.php" <?php $_SESSION['juego']=$fila[0]; ?>> <?php echo  $fila[1] ?></a>
					
					
					<?php 
						$fila = mysql_fetch_row($res);
						} 
					?>
			
			}else{
				$sesion = $_SESSION['juego'];
				$sent =  sprintf("SELECT * FROM juegos WHERE id='$sesion'");
				$res = mysql_query($sent);
				$fila = mysql_fetch_row($res);
				while($fila){

				echo"<a href='destruir.php'>" . $fila[1] . "</a>";	
				

				$fila = mysql_fetch_row($res);
				}
			
			} 
					?>
			

</body>
</html>
Luego se supone que una ves se muestre el juego habra un enlace a destruir.php que tiene este codigo para cambiar el valor de la sesion a 0.

Código:
<?php
session_start();

$_SESSION['juego']=0;
header ("Location: juegos.php");
?>
El problema es que siempre me coge el id del ultimo juego a pesar de que se lo asigno a la variable solo si pincho sobre el enlace o eso creo yo.

Última edición por Aimarejada; 14/05/2008 a las 14:51
  #2 (permalink)  
Antiguo 14/05/2008, 19:19
 
Fecha de Ingreso: marzo-2008
Ubicación: Venezuela
Mensajes: 60
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Problema con sesiones

no entiendo bien tu código, pero esto es lo que entiendo. cuando muestras los juegos uno a uno
Código PHP:
<a href="juegos.php" <?php $_SESSION['juegos']=$fila[0]; ?><?php echo  $fila[1?></a>
y luego la persona hace click en ese enlace, no estás haciendo nada. y no lo estás haciendo porque ya ese <?php $_SESSION['juegos']=$fila[0]; ?>> se ejecutó al cargarse la página; es decir, es el mismo cuento de siempre, php se ejecuta en el servidor y el html en el cliente. por lo que cuando se hace click en el enlace, no se está asignando nada, esa sentencia php ya se ejecutó en el servidor.
es mejor que trabajes con GET, ya que con eso sí puedes anotar la variable en el HTML y después la puedes obtener con el GET en php
Código PHP:
<a href="juegos.php?fila=<?php=$fila[0]?>"> <?php echo  $fila[1?></a>
espero que me hayas entendido. saludos!
  #3 (permalink)  
Antiguo 15/05/2008, 11:42
Avatar de Aimarejada  
Fecha de Ingreso: abril-2006
Mensajes: 207
Antigüedad: 18 años
Puntos: 0
Re: Problema con sesiones

Deberia haberme dado cuenta de ese fallo tan grande. Probe lo que me dijiste pero la dirección queda asi: http://localhost/juegos.php?fila=<?php=$fila[0]?>

Probe a poner

Código:
<a href="juegos.php?fila=<?= $fila[0]?>"> <?php echo  $fila[1] ?></a>
Pero sigue haciendo lo mismo y si lo pongo de esta otra manera:

Código:
<a href="juegos.php?fila=<?php $fila[0]?>"> <?php echo  $fila[1] ?></a>
Me da como resultado esta dirección:

http://localhost/juegos.php?fila=
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 10:14.