Portada | Monotemáticos | Secciones | Desarrolladores | Comunidad | Servicios | Servicios profesionales | RSS
Desde 0 | HTML | CSS | ASP | PHP | AJAX | Javascript | Diseño web | Promoción web | Ganar dinero
Directorio | Manuales | Scripts | FAQs | Programas | Artículos Copyleft | Actualidad | La Cosecha | Colabora
Registrarse | Vuestras páginas | Foros del web | Lista de correo | Boletín de novedades
Generador METAs | Compras | Busca cursos
Alojamiento | Dominios.es | Micropagos SMS | Buscadores | Patentes, marcas | Creación web | Multimedia | Videos
Desarrollo Freelance | Buscar proyectos | Buscar profesionales | Solicitar desarrollo

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 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

La FAQ Problema con sesiones tiene Pertenece a la categoría:


 Respuesta de Julio Cesar Sanchez  04/7/08 
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.

Complementar la respuestaComplementar la respuesta
Volver al árbol de categoríasVolver al árbol de categorías

 Comentarios sin revisar
Entre los comentarios no revisados puede haber algunos interesantes que se hayan enviado recientemente.
 Se ha encontrado un comentario sin revisar

Ver el comentario no revisadoVer los comentarios no revisados
 
FAQ relacionadas
  + Implementar una capa de autentificación con PHP
  + Error al crear sessiones en PHP
  + Headers already sent error
  + Warning PHP por session_start()
  + Es necesario usar session_register()?
  + ¿Por qué no me guarda la sesión en Easy PHP?
  + Caducar páginas PHP
  + Nivel de acceso en PHP
  + Problema session side-effect PHP 5
  + Función sesion_register() en PHP 5

Complementar la respuestaComplementar la respuesta
Volver al árbol de categoríasVolver al árbol de categorías

DesarrolloWeb.com | Copyright | Anunciese | Acerca de | Datos legales | Contacta | Por GuiarteMultimedia