Foros del Web » Programando para Internet » PHP »

session_destroy()

Estas en el tema de session_destroy() en el foro de PHP en Foros del Web. Hola a todos Espero que alguien me pueda ayudar. Necesito que me ayuden en este código por favor, para ver que es lo que tengo ...
  #1 (permalink)  
Antiguo 25/04/2004, 10:23
 
Fecha de Ingreso: octubre-2003
Mensajes: 5
Antigüedad: 20 años, 6 meses
Puntos: 0
session_destroy()

Hola a todos

Espero que alguien me pueda ayudar.
Necesito que me ayuden en este código por favor, para ver que es lo que tengo malo, lo que sucede es que me da error en session_destroy(), el error es el siguiente:
Warning: Session object destruction failed in c:\archivos de programa\apache group\apache\htdocs\cft\programacion\salir.php on line 6
Gracias por tu acceso

La secuencia es la siguiente, tengo una página que se llama “autentificado.php”, en el cual me muestra un formulario en donde debo llenarlo con el nombre de usuario y password. Este formulario llama a “control.php”, en esta página valido los datos, el código es el siguiente.

$conn = odbc_connect("CFT","", "");
$sql = "select tipo, n_usuario, password, rut, dv_rut from usuario_web
where ((n_usuario = '$usuario')
and (password = '$contrasena'))";
$rs = odbc_exec($conn, $sql);
$_SESSION['n_usuario'] = odbc_result($rs,2);
$_SESSION['password'] = odbc_result($rs,3);
$_SESSION['rut_usuario'] = odbc_result($rs,4);
$_SESSION['dv_rut'] = odbc_result($rs,5);

if ($_SESSION['n_usuario'] == $usuario && odbc_num_rows($rs) != 0){
session_start();
$autentificado = "SI";
$_SESSION['autentificado'] = $autentificado;
header ("Location: aplicacion.php");
}else {
header("Location: autentificacion.php?errorusuario=si");
}
odbc_free_result($rs);
odbc_close($conn);

Si ingreso los datos bien me voy a la aplicación, en ella lo primero que hago es poner un incluye, el cual invoca a la página “seguridad.php”,
el código es el siguiente:
//TOMO VARIABLES DE SESION SOBRE LA AUTENTIFICACION
//session_register("autentificado");
session_start();
//COMPRUEBA QUE EL USUARIO ESTA AUTENTIFICADO
if ($autentificado != "SI") {
//si no existe, envio a la página de autentificacion
header("Location: autentificacion.php");
//ademas salgo de este script
exit();
}

En la página “aplicación.php”, junto con tener el incluye hacia la página “seguridad.php”, hago un enlace con ref. hacia la página “salir.php”, esta página es en la que me da el error, el código de la página es.
<?
session_start();
//session_name("autentificado");
//session_unset();
$_SESSION = array();
session_destroy();
?>
En la sentencia de session_destroy(), me da el error que te comenté al principio.

Espero que me puedan ayudar por favor, ya que no comprendo este error y he preguntado, pero todos me dicen que con lo que tengo debería funcionar.
Ojalá que me puedan ayudar.

Salu2 …………….. Solange
  #2 (permalink)  
Antiguo 25/04/2004, 15:28
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
En autentificado.php (el primer código que citas) .. usas session_start() ? antes de crear tus variables de sesión? .. usas nombre propio para la sesión (session_name ("algun nombre") ) ?

En tu seguridad.php ... debes ver la variable de la sesión igual que por el método que la defines (en el array superglobal $_SESSION ..)

if ($autentificado != "SI") {
//si no existe, envio a la página

sería:

if ($_SESSION['autentificado'] != "SI") {

.. de esta forma .. si el SID se propaga correctametne (no veo que lo hagas manualmente . así que deduzco que debes usar: (php.ini) session.use_cookies = 1 y un navegador que acepte cookies) el session_destroy() (despues de tu session_start() .. ) no debería dar el problema que mencionas. Pero si la sesión no está siendo propagada (el SID) .. dará ese problema.

Un saludo,

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 19:41.