Actualmente estoy trabajando en un sitio que tiene un inicio de sesión (nombre de usuario y contraseña) - La protección de contraseña se realiza por el sistema operativo dentro del servidor web a nivel de carpeta llamado un Reino dentro el sistema operativo. Por ahora esto tendrá que hacer, hasta que descubramos un sistema apropiado de inicio de sesión en PHP.PHP Session Destruir al cerrar sesión Botón
El código siguiente, se basa en una previous question on the stack overflow.
estoy usando 3 archivos (Ver fragmentos de código en la parte inferior).
El proceso es: - Haga clic en el botón Iniciar sesión en index.php - Introduzca el nombre de usuario y la contraseña para acceder al archivo de índice de autenticación. - Haga clic en el botón de cerrar sesión, que hace referencia al archivo logout.php; DEBERÍA borrar el caché y devolver al usuario al índice de nivel superior.
No 'destruye la sesión' en el sentido de que no se le pide que vuelva a ingresar la contraseña cuando se le solicite, que es esencialmente lo que quiero que suceda.
Mi conocimiento mínimo de php me deja un poco perplejo aquí.
index.php (archivo de nivel superior con registro en el botón)
<?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=UTF-8" />
<title>Test</title>
</head>
<body>
<a href="authenticate/index.php">Log In Btn</a>
</body>
</html>
autenticar/index.php (Esta carpeta está protegida por contraseña - contiene el archivo de índice con el botón de cierre de sesión en vínculos en el fichero de logout.php)
<?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=UTF-8" />
<title>Log out</title>
</head>
<body>
<a href="logout.php">Log Out Btn</a>
</body>
</html>
autenticar/logout.php
<?php
session_start(); //to ensure you are using same session
session_destroy(); //destroy the session
header("location:/index.php"); //to redirect back to "index.php" after logging out
exit();
?>
Si la carpeta está protegida por contraseña, entonces PHP no está haciendo la autenticación. Apache (o el servidor web) es. – xbonez
Eso tiene sentido, muchas gracias @xbonez – fitzilla