Foros del Web » Programando para Internet » PHP »

sesion.... ayuda...

Estas en el tema de sesion.... ayuda... en el foro de PHP en Foros del Web. se supone que esto es algo sencillo pero no me esta funcionando y estoy que busco pero no encuentro el error..... tengo un inicio de ...
  #1 (permalink)  
Antiguo 05/08/2008, 12:07
 
Fecha de Ingreso: julio-2008
Ubicación: Ecuador
Mensajes: 153
Antigüedad: 15 años, 9 meses
Puntos: 0
Exclamación sesion.... ayuda...

se supone que esto es algo sencillo pero no me esta funcionando y estoy que busco pero no encuentro el error.....

tengo un inicio de sesion....

Código PHP:
<?
session_start
();
$_SESSION["user"]=$_POST['txt_usu'];
$_SESSION["pass"]=$_POST['txt_contrasena'];
$_SESSION["falla"]=0;
?>
Código PHP:
$usuario=$_SESSION["user"]
echo 
"<b>Bienvenido $usuario</b>";
$_SESSION["usuario"]=$usuario;
$_SESSION["ultimoAcceso"]= date("Y-n-j H:i:s"); 
bueno y si es que encuentra el usuario haciendo la consulta me envia a una pagina y me dice esto
y hasta ahi me funciona muy bien pero a lo que me voy a la pagina donde la direcciono para que me salga otra vez el nombre del usuario ya no me sale...

Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin t&iacute;tulo</title>
<script language="javascript">
<!--
function cerrar_sesion(){
<?php
session_destroy
();
?>
location.href='../index.php'
}

function MM_callJS(jsStr) { //v2.0
  return eval(jsStr)
}
//-->
</script>
<style type="text/css">
<!--
a:link {
    color: #000000;
    text-decoration: none;
}
a:visited {
    text-decoration: none;
}
a:hover {
    text-decoration: underline;
}
a:active {
    text-decoration: none;
}
-->
</style></head>

<body>
<?php 
echo "<div align='left'>";
echo 
"usuario:";
echo 
"&nbsp;";
echo 
$_SESSION["usuario"]; 
echo 
"</div>";
?>
<p>&nbsp; </p>
</body>
</html>
como que no se me guarda el $_SESSION["usuario"]

si alguien me puede ayudar muchas gracias.............
  #2 (permalink)  
Antiguo 05/08/2008, 12:12
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Respuesta: sesion.... ayuda...

Este codigo se ejecutara aunque entres o no a la funcion javascript... no se pueden mezclar...
Código PHP:
<?php
session_destroy
();
?>
Sacalo y prueba.

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #3 (permalink)  
Antiguo 05/08/2008, 12:13
Avatar de chwc  
Fecha de Ingreso: julio-2008
Ubicación: Buenos Aires ! :D
Mensajes: 814
Antigüedad: 15 años, 9 meses
Puntos: 103
Respuesta: sesion.... ayuda...

ehhhh??? preguntas eso, aqui
Cita:
<?php
session_destroy();
?>
elimina eso(significa cerrar sesion)
  #4 (permalink)  
Antiguo 05/08/2008, 12:14
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: sesion.... ayuda...

Te falta llamar a session_start() en tus dos archivos y adicionalmente el session_destroy que tienes ahi no se va a ejecutar cuando llames a cerrar_sesion, se llama automaticamente al entrar a la pagina.

Esto es debido a que tienes que entender que en PHP los procesos se manejan en dos planos, primero se parsea y se ejecuta todo el codigo PHP, y lo que genera (con echo/print etc.) es lo que se envia al navegador, y eso es tmb parte de Javascript, por lo que para cuando tu funcion cerrar_sesion se imprime en la pagina, tu ya llamaste a session_destroy y eso te crea problemas como el que tienes.

Saludos.
  #5 (permalink)  
Antiguo 05/08/2008, 12:30
 
Fecha de Ingreso: julio-2008
Ubicación: Ecuador
Mensajes: 153
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: sesion.... ayuda...

hola GatorV...
ya ahorita lo probe y lo unico que le agregue fue el session_start() al inicio del codigo y me funciono muy bien....

y en cuanto al session_destroy lo puse como funcion en el javascript para cuando de click en la etiqueta "cerrar sesion" llame a dicha funcion y me cierre sesion y me direccione a la pagina de inicio..........

Muchas gracias por las ayudas.........
  #6 (permalink)  
Antiguo 05/08/2008, 12:34
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Respuesta: sesion.... ayuda...

Eso es lo que estabamos tratando de explicarte... eso no funcionara cuando presiones el boton... funcionara al cargar la pagina.

Y el dato de sesion te lo muestra porque esta en la misma pagina, cuando te cambies seguramente se ira el dato.

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #7 (permalink)  
Antiguo 05/08/2008, 12:37
 
Fecha de Ingreso: julio-2008
Ubicación: Ecuador
Mensajes: 153
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: sesion.... ayuda...

Mira asi me funciono no se si algo esta mal pero la etiqueta cerrar sesion si me funciona....

Código PHP:
<?
session_start
();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin t&iacute;tulo</title>
<script language="javascript">
<!--
function cerrar_sesion(){
<?php
session_destroy
();
?>
location.href='../index.php'
}

function MM_callJS(jsStr) { //v2.0
  return eval(jsStr)
}
//-->
</script>
<style type="text/css">
<!--
a:link {
    color: #000000;
    text-decoration: none;
}
a:visited {
    text-decoration: none;
    color: #000000;
}
a:hover {
    text-decoration: underline;
    color: #000000;
}
a:active {
    text-decoration: none;
    color: #000000;
}
.Estilo1 {font-family: Verdana}
-->
</style></head>

<body>
<pre><strong><?php 
echo "<div align='left'>";
echo 
"usuario:";
echo 
"&nbsp;";
echo 
$_SESSION["usuario"]; 
echo 
"</div>";
?>
</strong><span class="Estilo1"><a href="#" onclick="cerrar_sesion()">cerrar sesion</a>
</span></pre>

<pre>&nbsp;</pre>
</body>
</html>
  #8 (permalink)  
Antiguo 05/08/2008, 12:56
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: sesion.... ayuda...

Te "funciona" ya que session_destroy no borra la variable $_SESSION por lo que abajo todavia ves los valores, pero si haces F5 (recargar pagina) veras que aunque no presionaste la etiqueta de cerrar_sesion, los valores ya se perdieron.

Saludos.
  #9 (permalink)  
Antiguo 05/08/2008, 13:29
 
Fecha de Ingreso: julio-2008
Ubicación: Ecuador
Mensajes: 153
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: sesion.... ayuda...

y entonces dime que debo de hacer xq ya hice y si se me borran los valores........

ayudame.... como hago para que se guarden... que tengo que arreglar, sacer o poner....
  #10 (permalink)  
Antiguo 05/08/2008, 13:31
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Respuesta: sesion.... ayuda...

Debes sacar de tu codigo el "session_destroy();" y ponerlo en una pagina intermedia... asi el Javascript lo envias a esa pagina cuando presionen cerrar sesion y esa pagina hace el session_destroy(); y te devuelve a index.php

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #11 (permalink)  
Antiguo 05/08/2008, 13:42
 
Fecha de Ingreso: julio-2008
Ubicación: Ecuador
Mensajes: 153
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: sesion.... ayuda...

hola marvin
soy nuevo en esto y no te entiendo si puedes explicarme mas detalladamente te lo agradeceria.........
  #12 (permalink)  
Antiguo 05/08/2008, 13:44
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: sesion.... ayuda...

Quiere decir que hagas una pagina por ejemplo "logout.php", en esta pones el siguiente codigo:
Código PHP:
<?php
session_start
();
$_SESSION = array();
session_destroy();
header("Location: ../index.php");
Luego en tu función Javascript llamas a logout.php y le quitas eso de session_destroy ahi.

Saludos.
  #13 (permalink)  
Antiguo 05/08/2008, 13:49
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Respuesta: sesion.... ayuda...

Mira... la funcion javascript:
Código PHP:
function cerrar_sesion(){
<?php
session_destroy
();
?>
location.href='../index.php'
}
Cambiala a esto:
Código PHP:
function cerrar_sesion(){
location.href='../cerrarSesion.php'

En tu pagina cerrarSesion.php pon esto:
Código PHP:
<?
session_start
();
if(
session_destroy()){
     
header("Location: index.php"); //Se destruyo la sesion y te envia a la pagina index.php
}else{
     
header("Location: error.php"); //No se destruyo la sesion y te envia a una pagina error.php
}
Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #14 (permalink)  
Antiguo 05/08/2008, 14:04
 
Fecha de Ingreso: julio-2008
Ubicación: Ecuador
Mensajes: 153
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: sesion.... ayuda...

Ahora si ya me salio..... Muchas gracias a los dos........
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 09:03.