PHP - Problema con una session

   
Vista:

Problema con una session

Publicado por unexes (124 intervenciones) el 04/02/2013 01:21:05
Bueno me he atascado con una cosa tonta, debo estar bastante cansado pero llevo tiempo buscando el problema y no lo veo, pongo todo el código a ver si veis que es lo que hago mal.

En mi página de inicio abro 2 sesiones, una para seleccionar la cantidad de coches que vere por página con mi páginador y otra para seleccionar la ciudad en la que busco los coches y así no tener que poner cada vez la ciudad cuando navego entre mis páginas, de entrada veo todos los coches de todas las ciudades, hasta que seleccione una ciudad en concreto, hasta aquí correcto.
La SESSION donde selecciono la cantidad de coches a visualizar por página funciona bien en todos los sitios, pero la de la ciudad me da por todos los lados, os pongo el código reducido a lo necesario para que me digais como debo hacerlo, ya que he eliminado todo el código de pruebas que he hecho y lo he puesto separado al final.
Página de INICIO.PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
session_start();
$_SESSION["numpag"]=250;
$_SESSION["Ciudad"]=-1;
// Aqui indico que al entrar por primera vez me ponga 250 coches por página
// y presente los coches de todas las ciudades.
?>
<head>
</head>
<?php
		require_once('Connections/ConexionCoches.php');
?>
<body>
<div id="DivCompleto">
<div id="FondoInicio">
    <div id="Menu">
<table width="765" border="0" height="30">
  <tr>
    <td align="center" width="60" class="Submenu">Inicio</a></td>
    <td align="center" width="130"><a href="Coches.php">Coches</a></td>
  </tr>
</table>
</div>
 </div>
</div>
</body>
</html>

Página COCHES.PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<?php
if(!isset($_SESSION))
{
session_start();
}
?>
<head>
        <script type='text/javascript' src='Js/jquery-1.7.1.min.js'></script>
</head>
<?php
		require_once('Connections/ConexionCoches.php');
 
		if(isset($_GET["selregistrospagina"])){
        $_SESSION["numpag"]=$_GET["selregistrospagina"];
        }
        $selregistrospagina=$_SESSION["numpag"];
?>
<body>
<div id="DivCompleto">
<div id="Fondo">
<div id="DivNumRegistrosPagina">
<form name="Paginas" method="GET" action="Coches.php">
<table width="195" height="30" border="0">
  <tr>
  <td align="center" class="ChicasPagina">Chicas por página:</td>
  <td align="center">
  <select name="selregistrospagina" id="selregistrospagina" class="Guias3"  onchange="this.form.submit()" >
        <option value="" selected><?php echo $_SESSION["numpag"];?></option>
<?php
	$tablaregistrospagina = mysql_query("SELECT * FROM registrospagina ORDER BY Paginas ASC");
	while ($registroregistrospagina = mysql_fetch_array($tablaregistrospagina)) {
?>
<option value="<?php echo $registroregistrospagina['Paginas']; ?>"><?php echo $registroregistrospagina['Paginas']; ?></option>
<?php
	}
	mysql_free_result($tablaregistrospagina);
		?>
	</select>
    </td>
    </tr>
    </table>
    </form>
</div>
<div id="DivFiltrado"><?php require ("MenuLateral.php"); ?></div>
<div id='contenido'><?php require ("Contenido.php"); ?></div>
    <div id="Menu">
<table width="765" border="0" height="30">
  <tr>
    <td align="center" width="60"><a href="inicio.php">Inicio</a></td>
    <td align="center" width="130"  class="Submenu">Coches</td>
  </tr>
</table>
</div>
<script type='text/javascript'>
function cargarContenido(pagina)
{
    $("#contenido").html("<img src='clock.gif' class='clock' border='0' />");
    $("#contenido").load(pagina, $("#filtrar").serialize());
}
</script>
 </div>
</div>
</body>
</html>

Página MENULATERAL.PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<html>
<head>
</head>
<body>
<form name="filtrar" id="filtrar" method="GET"  action="">
<div id="accordion">
    <table width="185" height="30" border="0" cellspacing="5">
<tr>
<td align="left">
    <select name="selciudad" id="selciudad" class="Guias3" Onchange="cargarContenido('Contenido.php')">
    <option value="-1" selected>&nbsp;Todas las Ciudades&nbsp;&nbsp;&nbsp;</option>
    <?php
    $tablaciudad = mysql_query("SELECT * FROM provincias  ORDER BY Provincia ASC");
    while ($registrociudad  = mysql_fetch_array($tablaciudad ))
        if (empty($_GET["selciudad"])<> '-1')
		{
           echo "<option value='".$registrociudad['Provincia']."' selected>&nbsp;&nbsp;".$registrociudad['Provincia']."</option>";
       }else{
          echo "<option value='".$registrociudad['Provincia']."' >&nbsp;&nbsp;".$registrociudad['Provincia']."</option>";      }
    mysql_free_result($tablaciudad);
	?>
</select>
</td>
</tr>
</table>
</form>
</div>
</body>
</html>

Página CONTENIDO.PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<?php
if(!isset($_SESSION))
{
session_start();
}
?>
  <head>
  </head>
<?php
require_once('Connections/ConexionCoches.php');
 
if(isset($_GET["selregistrospagina"])){
        $_SESSION["numpag"]=$_GET["selregistrospagina"];
        }
        $selregistrospagina=$_SESSION["numpag"];
 
$selciudad = isset($_GET["selciudad"])? $_GET["selciudad"]: '';
?>
<?php
		$records_per_page = $selregistrospagina;
        require 'Zebra_Pagination/Zebra_Pagination.php';
        $pagination = new Zebra_Pagination();
       $pagination->records_per_page($records_per_page);
?>
<body>
<div id="Consulta">
  <?php
$sql = "SELECT SQL_CALC_FOUND_ROWS * FROM escortschicas WHERE Activacion = '1'";
 
        if (isset($_GET['selciudad'])and $_GET['selciudad'] <>'-1') {
		$sql .= "AND escortschicas.Ciudad = '$selciudad' ";
	   }else {$sql .= "AND escortschicas.Ciudad <> '-1' ";
}
$sql .= 'ORDER BY Ciudad ASC ';
$sql .= 'LIMIT ' . (($pagination->get_page()- 1) * $records_per_page) . ', ' . $records_per_page . '';
        if (!($result = @mysql_query($sql))) {
            die(mysql_error()); }
        $rows = mysql_fetch_assoc(mysql_query('SELECT FOUND_ROWS() AS rows'));
         $pagination->records($rows['rows']);
         $pagination->records_per_page($records_per_page);
$tabla = mysql_query($sql);
while ($registro = mysql_fetch_array($tabla)) {
		?>
 <div class="Prueba">
 <table class="MarcoFotoPrincipal" width="183" border="0">
  <tr>
          <td><a href="Ficha.php?Id=<?php echo $registro['Id']; ?>"><img border="0" src="<?php echo $registro['FotoPrincipal']; ?>" width="165px" height="240px"></a></td>
  </tr>
  </table>
 </div>
<?php
}
mysql_free_result($tabla);
?>
</div>
</body>

La página contenido.php me muestra todos los coches o solo los de la ciudad seleccionada y cuando pulso sobre una imagen de un coche me abre la ficha de ese coche "ficha.php" que en este momento no contiene nada, lo que quiero es que al retroceder me mantenga seleccionada la ciudad igual que me hace con el numero de coches que quiero visualizar por página.
He intentado poner esto en la página contenido.php pero no me funciona. ¿Que es lo que hago mal?.
1
2
3
4
5
6
7
8
9
if(isset($_GET["selregistrospagina"])){
        $_SESSION["numpag"]=$_GET["selregistrospagina"];
        }
        $selregistrospagina=$_SESSION["numpag"];
 
if(isset($_GET["selciudad"])){
        $_SESSION["Ciudad"]=$_GET["selciudad"];
        }
        $selciudad=$_SESSION["Ciudad"];

Seguire haciendo pruebas, gracias por la molestia de miraros todo el código
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Problema con una session

Publicado por Alexis Ochoa (92 intervenciones) el 04/02/2013 03:58:01
Sin ver el código a fondo, te puedo dar una "solución" mientras veo mas detenidamente.

Cuando el usuario haga click en la imagen del coche, carga el contenido de éste en una ventana emergente (popup).

Para esto, tan sólo tendrías que cambiar

1
<a href="Ficha.php?Id=<?php echo $registro['Id']; ?>"><img border="0" src="<?php echo $registro['FotoPrincipal']; ?>" width="165px" height="240px"></a>


Por esto

1
2
3
<a href="#" onClick="window.open('Ficha.php?Id=<?php echo $registro["Id"]; ?>','ficha','width=500,height=500');return false">
<img border="0" src="<?php echo $registro['FotoPrincipal']; ?>" width="165px" height="240px">
</a>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema con una session

Publicado por unexes (124 intervenciones) el 04/02/2013 09:24:40
Gracias Alexis Ochoa, pero me entendiste mal, mi problema no es cuando el usuario hace click en la imagen de un coche, en ese caso me funciona todo perfectamente y me abre el coche en la ficha.php.

Mi problema es que cuando abro esa ficha y vuelvo con el menu a contenido.php que es donde me muestra todos los coches, para seleccionar otro, quiero que me mantenga la ciudad y no me saque los coches de todas las ciudades, por eso quiero guardar la ciudad elegida en una sesion pero a diferencia de la sesion (numpag) que si funciona perfectamente, la sesion (ciudad) no me funciona.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema con una session

Publicado por Juan Manuel Castañeda (50 intervenciones) el 05/02/2013 20:12:57
Hola Unexes.
Cargue el valor de $_SESSION["Ciudad"] cuando selecciona la ciudad y no la inicialice en Inicio.php
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar