Ya tengo la solucion, que encontre donde Josemi me indico. Ya habia consultado la pagina antes pero no me di cuenta el material que habia. He tardado un poco en enviarla por que he estado un poco ucupado. Esta solucion no funciona para el navegador firefox ya que si vuelves atras en el historial te vuelve a cargar las variables del servidor antiguas.
Desde un boton dirigia a la aplicacion a la pagina cerrar sesion.Este es el codigo:
Código PHP:
<?
session_start();
session_register("autentificado");
$autentificado = "NO"; //[I]Debia de enviarle esta variable, que ademas de decirme que el usuario ya no puede acceder a las paginas que lo hacia antes (sigo controlando la seguridad por sesiones) me ayudaba a que la autentificacion de apache no me la pidiera una y otra vez[/I].
echo "<body onload=\"javascript:window.document.logon.submit();\">";
echo "<form action='index.php' METHOD='POST' name=logon>\n";
echo "</form></p>\n";
?>
Despues en la pagina index esta la peticion de autentificacion.
Código PHP:
<?
function autentificacion() { // provoca la autentificacion apache al cerrrar sesion
header('WWW-Authenticate: Basic realm="Usuario"
Auth_MYSQL on
Auth_MySQL_Authoritative off
Auth_MySQL_DB usuarios_apli
Auth_MySQL_Username admin_user
Auth_MySQL_Password chusco
Auth_MySQL_Password_Table usuarios
Auth_MySQL_Encrypted_Passwords on
Auth_MySQL_Encryption_Types Crypt_DES
Auth_MySQL_Username_Field usuario
Auth_MySQL_Password_Field pass
require valid-user ');
header('HTTP/1.0 401 Unauthorized');
echo "Debes introducir un usuario y contrseńa validos\n";
exit;
}
session_start();
if (isset($autentificado) && $autentificado=='NO' || !isset($_SERVER['PHP_AUTH_USER'])) {
unset($_SERVER['PHP_AUTH_USER']);
unset($SID);
session_unset(); [I]//Ahora destrullo la sesion conla variable antes mencionada de forma que no se ejecuta otra vez la autentificacion. Si el usuario no hubiera introdudido los valores correctos mostraria el mensaje de error o volveria a pedir la autetificacion (depende del navegador).[/I]
session_destroy();
autentificacion();
}
else {
Aqui va la parte del codigo donde construllo la sesion para el usuario autentificado con las variables del servidor.