Ver Mensaje Individual
  #3 (permalink)  
Antiguo 09/05/2007, 03:22
bananas
 
Fecha de Ingreso: junio-2004
Ubicación: ORENSE
Mensajes: 258
Antigüedad: 19 años, 10 meses
Puntos: 0
Exclamación Re: problema con variables de sesion

Vamos a ver,si que es posible escribir desde javascript el valor de una variable de sesion....
Pongo el codigo simplificado para que vean:

Código:
<?php
session_start();
function  dibujar(){
	//accedo por el indice del inmueble en el array de los inmuebles
	//se ejecuta el if si no es una alta
 	if($_GET['indice'] != -1 && $_GET['indice'] != ""){
     	$_SESSION['indice'] = $_GET['indice'];
 		$tamano = sizeof($_SESSION['s_inmuebles'][$_GET['indice']]['Imagenes']);
 		$_SESSION['id'] = $_SESSION['s_inmuebles'][$_GET['indice']]['Id_Inmueble'];

		if(sizeof($_SESSION['s_imagenes_aux'][$_SESSION['id']]) == 0 && $_SESSION['vacio'] != 1){
			$_SESSION['s_imagenes_aux'][$_SESSION['id']] = $_SESSION['s_imagenes'][$_SESSION['id']];
 		}
	}else{
		$_SESSION['indice'] = -1;
	}
	
	$_SESSION['total'] = sizeof($_SESSION['s_imagenes_aux'][$_SESSION['id']]);

	echo "total ".$_SESSION['total'];
	
	if($_POST['subir'] == 1){
		cargar_imagen();
	}

  	//numero total de imagenes que se pueden subir de un inmueble
	$total = 8;
	$tamano = sizeof($_SESSION['s_imagenes_aux'][$_SESSION['id']]);
	$mostrados = 1;
	for($i=1; $i<=$total; $i++){//construye la tabla para todas la imagenes
		if($i <= $tamano){
			$foto = $_SESSION['s_imagenes_aux'][$_SESSION['id']][$i - 1]['Ruta_Thumb'];
			$comando = "javascript:eliminarForm(".($i - 1).");";		
		}else{
			$foto = "../imaxes/thumb/default_inmueble.jpg";
			$comando = "";
		}	

  		if($mostrados == 1){//si es la primera foto creo una fila e introduzco la foto
			echo"<tr>
				<td width='25%' class='inputtabla'>
					<img name='imgFoto$i' width='100' height='90' src='$foto'><br>";
					require_once ('../modulos/funciones.php');
					botonpeque($comando,'Borrar');
				echo"</td>";
  		}else{
	  		if($mostrados % 5 == 0){//si es la ultima foto de una fila cierro la fila y creo otra fila
				echo"</tr>
				<tr>
					<td width='25%' class='inputtabla'>
						<img name='imgFoto$i' width='100' height='90' src='$foto'>";
						require_once ('../modulos/funciones.php');
						botonpeque($comando,'Borrar');
					echo"</td>";
	  		}else{
				echo"<td width='25%' class='inputtabla'>
					<img name='imgFoto$i' width='100' height='90' src='$foto'>";
					require_once ('../modulos/funciones.php');
					botonpeque($comando,'Borrar');
				echo"</td>";
	  		}
	  	}
	  	$mostrados++;
	  	if($mostrados == 5){
			$mostrados = 1;
		}
	}
	echo"</tr>";	
}
?>
<script>
function subirForm(){
	alert("<?php echo $_SESSION['total']?>");
 	var tamano = <?php echo $_GET['total'];?>;
             alert(tamano);
 	if(tamano >= 8){
	alert("Este inmueble ya tiene todas las imágenes posibles, 8.");
             }
}
</script>
Hay mas codigo pero no es necesario que lo ponga porque con esto creo que basta.En la funcion dibujar recogo el valor de "indice" que me viene por GET y en $_SESSION['total'] almaceno el tamaño de un array y luego lo escribo,esto lo hace bien.
En la funcion subirForm realizo el alert de esa variable de sesion y cual es mi sorpresa que el valor es difrente la primera vez que cargo la pagina,ya que me mantiene el valor antiguo.
Es decir primera vez que abro la pagina,en la variable de sesion de la funcion php el total me escribe por ejemplo "5".Cierro la ventana y luego la vuelvo a abrir y ahora con otros parametros me escribe "3" pero en la funcion subirForm el alert me saca "5"!!!!!
Por que??
Cual seria la solucion??
__________________
Inmuebles de Galicia:www.inmueblevirtual.net
Compartir piso en Galicia:www.inmueblevirtual.net/foro