Problema con sesiones

Mi problema es que cuando cierro la sesion y redirigo a la pagina de login, este no me pide ni nombre de usuario ni contraseña y las variables de...

La FAQ Problema con sesiones tiene

Pertenece a la categoría:
Pregunta
Mi problema es que cuando cierro la sesion y redirigo a la pagina de login, este no me pide ni nombre de usuario ni contraseña y las variables de sesion vuleven a los valores de los usuario logueados.



Aunque esta un poco enredado con todas las modificaciones que e intentado, esta seria la pagina de entrada




/****************index.php***************************/

<?php require_once '../clases/conexion.php';

if (!isset($_SERVER['PHP_AUTH_USER'])) {

header('WWW-Authenticate: Basic realm="My Realm"');

header('HTTP/1.0 401 Unauthorized');

include 'sinpermiso.php';

exit(0);

}

else{

$name=addslashes($_SERVER['PHP_AUTH_USER']);

$pass=addslashes($_SERVER['PHP_AUTH_PW']);

$query="SELECT * FROM administracion WHERE nombre='$name' and pass= SHA('$pass')";

$conexion = new Conexion();

$link = $conexion->conectar();

$result=mysql_query($query,$link) or die('La consulta falló: ' . mysql_error());

if(mysql_num_rows($result)!=1){

header('WWW-Authenticate: Basic realm="My Realm"');

header('HTTP/1.0 401 Unauthorized');

include 'sinpermiso.php';

$conexion->desconectar();

exit (1);

}

else {

session_cache_limiter('nocache');

session_start();

$_SESSION["access"]=true;

$_SESSION["date"]= date("Y-n-j H:i:s");

$conexion->desconectar();

header("Location: inicio.php");

exit(0);

}

}

?>

/***********************************************************/



el codigo lo he sacado tanto de la pagina de desarrollo web como de php.net aunque con algunas modificaciones.



el codigo con que comienzo cada pagina segura (lo hago con un include al principio de cada pagina) es:



/*****************control_session.php***********************/

<?php session_cache_limiter('nocache');

session_cache_expire(10);

session_start();

if ((!isset($_SESSION["access"]) ) || (!($_SESSION["access"]) ) ){

header ("Location: sinpermiso.php");

exit(1);

}

$date = $_SESSION['date'];

$nowdate = date("Y-n-j H:i:s");

$diftime = (strtotime($nowdate)-strtotime($date));

if($diftime >= 600) {

session_destroy();

header("Location: index.php");

}

else {

$_SESSION["date"] = $nowdate;

}

?>

/*****************************************************************/



y para cerrar



/******************cerrar.php*************************************/

<?php include 'control_sesiones.php';

unset($_SERVER['PHP_AUTH_USER']);

unset($_SESSION['access']);

unset($_COOKIE["PHPSESSID"]);

session_unset();

session_destroy();

header("Location: index.php");

?>

/*****************************************************************/






Se que esta un poco desordenado pero es que he intentado todo.


Espero me puedan ayudar.


Gracias de antemano
Respuesta de Julio Cesar Sanchez
Ya vi cual es tu problema, tu problema es la variable PHP_AUTH_USER que

es un tipo de autenticacion basica basada en HTTP, necesitas ejecutar

PHP como modulo y se manipula mediante header para el envio de los

datos, el problema es que como tu mencionas es persistente y dependiendo

del navegador funciona o no. Prueba con libapache2-mod-auth-mysql para

lograr el efecto que quieres que es recopilar nombre de usuario y

contraseña mediante el cuadro de dialogo de autenticacion basica de apache.
Volver al árbol de categoríasVolver al árbol de categorías
FAQ relacionadas
Volver al árbol de categoríasVolver al árbol de categorías