Ver Mensaje Individual
  #5 (permalink)  
Antiguo 27/10/2004, 03:32
Avatar de chuscazo
chuscazo
 
Fecha de Ingreso: abril-2004
Mensajes: 84
Antigüedad: 20 años
Puntos: 0
solucion

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&nacute;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.