Foros del Web » Programando para Internet » PHP »

Eliminar sesiones

Estas en el tema de Eliminar sesiones en el foro de PHP en Foros del Web. Hola amigos, estoy aprendiendo PHP pero por más que intento no consigo hacer esto, miren, tengo una base de datos de usuarios, me conecto a ...
  #1 (permalink)  
Antiguo 29/12/2009, 04:33
 
Fecha de Ingreso: diciembre-2009
Mensajes: 6
Antigüedad: 14 años, 3 meses
Puntos: 0
Eliminar sesiones

Hola amigos, estoy aprendiendo PHP pero por más que intento no consigo hacer esto, miren, tengo una base de datos de usuarios, me conecto a ella y entro en una parte restringida de mi web, hasta ahí todo bien, pero no consigo hacer una función desconectar para que al volver al menú y entrar de nuevo me vuelvan a pedir mi usuario y contraseña.

Les dejo el código para que quede todo más claro.

Login.php
Código:
<?php

      function showLogin() {

          header('WWW-Authenticate: Basic realm="Usuario y Contraseña, por favor"');

          header('HTTP/1.0 401 Unauthorized');

          echo "Error, no tiene permiso.\n";
          echo "<script type='text/javascript'>location.href='index.php';</script>";

          exit;

      }
      session_start();

      mysql_connect("localhost", "root", "@@@") or die ("Error en conexión");

	  mysql_select_db("usuarios") or die ("Error al seleccionar bd.");

      
      $_SESSION['User'] = $_SERVER['PHP_AUTH_USER'];

      $_SESSION['Pass'] =  $_SERVER['PHP_AUTH_PW'];

      $User = $_SESSION['User'];

      $Pass = $_SESSION['Pass'];

      $query ="SELECT * FROM datos WHERE user='$User' AND pass ='$Pass'";

      $result = mysql_query($query);
      $validate = mysql_num_rows($result);

      if (!validate) {

          showLogin();

      } else {

          if ($validate) {

              header("Location: alumnos.php/");

          } else {

              showLogin();

          }

      }
Desconexion.php
Código:
<?php

session_start();
session_unset();

session_destroy();
header("Location: index.php");
?>
He probado usando unset($_SESSION['User']); pero nada.
  #2 (permalink)  
Antiguo 29/12/2009, 04:41
Avatar de McBlink  
Fecha de Ingreso: noviembre-2006
Ubicación: $ARG->LaPampa()
Mensajes: 1.694
Antigüedad: 17 años, 5 meses
Puntos: 23
Respuesta: Eliminar sesiones

Justamente ayer hablamos de eso en éste post, creo que te será útil.

http://www.forosdelweb.com/f18/cerrar-sesion-764534/

Saludos y nos comentas.
  #3 (permalink)  
Antiguo 29/12/2009, 05:51
 
Fecha de Ingreso: diciembre-2009
Mensajes: 6
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Eliminar sesiones

Gracias McBlink, he estado leyendo ese post, y también algunos manuales por internet, pero no encuentro la solución, creo que es algún fallo en mis archivos php, porque si te fijas, tengo en el archivo de desconectar lo que se dice que hay que hacer, pero siempre me vuelve a salir lo mismo.

De todas formas, yo busco el usuario y password en una bbdd, en el otro post se hace todo mediante HTTP, no se si tendrá algo que ver.

Gracias, y a ver si alguien me ilumina :D
  #4 (permalink)  
Antiguo 29/12/2009, 08:50
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 1 mes
Puntos: 25
Respuesta: Eliminar sesiones

session_start();

debe ir al top de tus archivos php, veo que inicializas session_start a medio file, intenta cambiar eso
__________________
Hospedaje Web al mejor costo!
  #5 (permalink)  
Antiguo 29/12/2009, 08:53
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: Eliminar sesiones

Lo otro que también es útil saber, es que cuando quieras destruir una sesión hagas una página intermedia que destruya los datos con session_destroy() y luego pases de nuevo a la página del sistema.

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #6 (permalink)  
Antiguo 31/12/2009, 05:37
 
Fecha de Ingreso: diciembre-2009
Mensajes: 6
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Eliminar sesiones

Pues de ninguna de las maneras, creo que es porque la variable $_SESSION['User'] va guardando el usuario y luego no se elimina de ninguna de las maneras, sólo si yo manualmente elimino los datos del navegador.

¿no puedo hacer algo para que se eliminen los datos de contraseñas guardadas y eso con php?
  #7 (permalink)  
Antiguo 31/12/2009, 08:38
Avatar de McBlink  
Fecha de Ingreso: noviembre-2006
Ubicación: $ARG->LaPampa()
Mensajes: 1.694
Antigüedad: 17 años, 5 meses
Puntos: 23
Respuesta: Eliminar sesiones

Te dejo un ejemplo muy sensillo que funciona.

session1.php
Código PHP:
session_start(); // debe estar en TODOS tus archivos en la primer linea.

if( $_GET['n'] ){// si hay un nombre creamos la session
  
$_SESSION['usuario'] = $_GET['n'];
  
session_register("usuario"); // la registramos
  
echo $_SESSION['usuario']."<br><br>";//la mostramos en pantalla
  
echo "<a href=\"session2.php\">Eliminar Sesion</a>";//mostramos el link para eliminarla

session2.php
Código PHP:
session_start();
session_destroy();
Header("Location: session1.php"); 
creo que no hace falta decir nada.. probá y comentas..

Saludos.


PD: al archivo session1.php pasale una variable para que inicie la session
Código PHP:
session1.php?n=McBlink 
  #8 (permalink)  
Antiguo 31/12/2009, 12:40
Avatar de Esck21  
Fecha de Ingreso: septiembre-2009
Mensajes: 50
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: Eliminar sesiones

Por que no usas el metodo comun de Login? POST POST POST
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 22:49.