Foros del Web » Programando para Internet » PHP »

Problema con las variables $_SESSION

Estas en el tema de Problema con las variables $_SESSION en el foro de PHP en Foros del Web. Estoy utilizando una variable llamada $_SESSION['nombre'] en donde almaceno el nombre del usuario que esta trabajando. En index.php es donde realizo el formulario de conexion ...
  #1 (permalink)  
Antiguo 19/01/2009, 12:12
 
Fecha de Ingreso: diciembre-2008
Mensajes: 122
Antigüedad: 15 años, 4 meses
Puntos: 0
Problema con las variables $_SESSION

Estoy utilizando una variable llamada $_SESSION['nombre'] en donde almaceno el nombre del usuario que esta trabajando.

En index.php es donde realizo el formulario de conexion y en conex.php recojo el formulario y almaceno el usuario en $_SESSION['nombre']. Luego vuelvo a index.php donde muestro SESSION['nombre'].

Problema: ahora cada vez que accedo a index.php me aparece el nombre de usuario sin que rellene el formulario.
¿Como puedo hacerlo para que solo aparezca una vez que haya rellenado el formulario?

¿Cómo puedo hacer para que al hacer clic en un botón desconectar la sesion se termine y se borren las variables? ¿Tiene que ver con el session_destroy() ?

Gracias
  #2 (permalink)  
Antiguo 19/01/2009, 12:18
 
Fecha de Ingreso: enero-2008
Mensajes: 163
Antigüedad: 16 años, 3 meses
Puntos: 2
Respuesta: Problema con las variables $_SESSION

si cuando le des en el boton desconectar ejecutas session_destroy() para que todas las sessiones se borren y asi al iniciar la pagina otra ves ya no te apareceran las sesiones que tenias anteriormente
  #3 (permalink)  
Antiguo 19/01/2009, 12:19
Avatar de ACX_POISON  
Fecha de Ingreso: abril-2008
Ubicación: Talca-Chile
Mensajes: 750
Antigüedad: 16 años
Puntos: 7
Respuesta: Problema con las variables $_SESSION

si debes destruir la session al desconectarte.
__________________
Me junto con los que Saben, Queriendo Saber.
  #4 (permalink)  
Antiguo 19/01/2009, 16:38
Avatar de kurokishi  
Fecha de Ingreso: enero-2009
Ubicación: Tenochtitlán
Mensajes: 109
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: Problema con las variables $_SESSION

Pues lo que debes de hacer es que al iniciar la sesion en tu pagina debes de poner el session_start(); seguido de las variables de sesion, esto tiene que ser antes de que metas cualquier cosa en tu pagina (como un texto o codigo html, etc.)
Y cuando ya quieras terminar, poner un boton con session_destroy(); para que borre las variables de sesion y no puedan ser accedidas por algun tercero y al entrar nuevamente al formulario te aparezca el campo en blanco.
saludos!
  #5 (permalink)  
Antiguo 20/01/2009, 16:17
 
Fecha de Ingreso: diciembre-2008
Mensajes: 122
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Problema con las variables $_SESSION

ok, de acuerdo.

¿El session_destroy() se coloca en el onclick del boton o como?

Y si el usuario no hace clic en el desconectar, ¿como se hace para que la sesión se termine?

Gracias!!
  #6 (permalink)  
Antiguo 20/01/2009, 16:48
Avatar de kurokishi  
Fecha de Ingreso: enero-2009
Ubicación: Tenochtitlán
Mensajes: 109
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: Problema con las variables $_SESSION

Pues bien, yo tampoco soy muy letrado en esto de las sesiones pero como yo lo estoy haciendo es poner en un boton una redireccion a un script,
<li><a href='salir.php'>Salir</a></li>
(esto se puede poner en un boton)
Y en el otro script lo unico que hago es matar la sesion y redireccionar a una pagina (en mi caso la pagina de logeo)
Código PHP:
<?php
session_start
(); /*Aqui con el session_start(); hago referencia a la sesion con la que esta trabajando*/
session_destroy(); // y con esta lo que hago es destruir esta variable
?>
Código HTML:
<html>
<header>
<script type='text/javascript'> function redireccionar()
	{
	window.location='../nihongo.php';
	}  
	setTimeout ('redireccionar()', 4500);
	</script>
</header>
	<body>
		<center>
			<font face='times new roman' size='7' color='crimson'>
				Saliendo del Sistema, por favor espere. . .
			</font>
		</center>
	</body>
</html> 
Y con el scrpit lo redirecciono a la pagina donde se tienen que logear.
Y lo quer me ha pasado a mi es que cuando se cierra la ventana donde se esta la sesion se destruye (o talvez no, pero al intentar entrar cerrando la ventana tengo en mi script de la pagina un modulo de seguridad el cual si no estan registrados los redirecciona a la pagina de login, aunque en el historial esten las paginas con la sesion).
El script de seguridad (es muy burdo, pero sirve) es el siguiente:
Código PHP:
<?php
if($_SESSION["existe"]!='si')
{
header ('Location: ../nihongo.php');
exit();
}
?>
Solo recuerda tambien poner este modulo dentro de tu pagina principal con un include, de lo contrario no serviria de nada
<?php
session_start();
$_SESSION['variable1'];
$_SESSION['variable2'];
include ("seguridad.php");
echo "<html>";
tu pagina.....
?>

Espero que te sirva, Saludos.

Última edición por kurokishi; 20/01/2009 a las 16:53 Razón: equivocacion al explicar detalles
  #7 (permalink)  
Antiguo 21/01/2009, 02:56
 
Fecha de Ingreso: diciembre-2008
Mensajes: 122
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Problema con las variables $_SESSION

A mi las variables de sesión me funcionan correctamente pero mi mayor duda es si puedo poner en un botón directamente onclick=session_destroy(); o tengo que hacerlo de otra manera?

Gracias
  #8 (permalink)  
Antiguo 21/01/2009, 03:18
 
Fecha de Ingreso: septiembre-2008
Mensajes: 67
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Problema con las variables $_SESSION

Hola alberto,

Creo que eso que dices no puedes hacerlo, ya que(= estoy metiendo la pata) las variables session es php(lenguaje servidor) y onclick (es lenguaje cliente).

Yo te propongo que pongas un botón cerrarsesión, que llame a otra página o a la misma página y ahí es donde haces el seeion_destroy.

<form name="anular" action="" method="post"><input type="submit" name="CerrarSesion" value="CerrarSesion" ></form></div>

<?php
if(isset($_POST["CerrarSesion"]))
{
$_SESSION[]=array();
session_destroy();
?>
<script language="javascript">alert("SESIÓN FINALIZADA"); parent.location.href="index.php3";</script>

<?php
}
?>
Creo que esto te puede servir. Ya te digo que puedes utilizar la misma página en la cual está el boton cerrarsession como action="", ya que al tener el isset, sólo te cerrará la sesión si recibe el paso de la variable sesion.

saludos
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 06:46.