Foros del Web » Programando para Internet » PHP »

Borrar el valor de las variables

Estas en el tema de Borrar el valor de las variables en el foro de PHP en Foros del Web. Se puede borrar el valor de las variables $_SERVER["PHP_AUTH_USER"] y $_SERVER["PHP_AUTH_PW"] al pasarlas por las cabeceras?...
  #1 (permalink)  
Antiguo 06/05/2003, 16:33
Avatar de mdk
mdk
 
Fecha de Ingreso: noviembre-2002
Mensajes: 531
Antigüedad: 21 años, 5 meses
Puntos: 11
Borrar el valor de las variables

Se puede borrar el valor de las variables $_SERVER["PHP_AUTH_USER"] y $_SERVER["PHP_AUTH_PW"] al pasarlas por las cabeceras?
__________________
SoY Lo Ke VeS iNKLuSo KuAnDo No Me VeS ;)

Última edición por mdk; 07/05/2003 a las 12:55
  #2 (permalink)  
Antiguo 06/05/2003, 20:38
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
En php.net .. algunos comentarios de los usuario dicen tener varios métodos para hacer el "logout" (borrar esas variables ...) ..

Pruebalos y nos comentas:
http://www.php.net/manual/en/features.http-auth.php

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 07/05/2003, 04:27
Avatar de mdk
mdk
 
Fecha de Ingreso: noviembre-2002
Mensajes: 531
Antigüedad: 21 años, 5 meses
Puntos: 11
En la url esa no veo ningun ejemplo claro, lo siento
__________________
SoY Lo Ke VeS iNKLuSo KuAnDo No Me VeS ;)
  #4 (permalink)  
Antiguo 07/05/2003, 09:45
Avatar de Pino  
Fecha de Ingreso: abril-2003
Ubicación: Cangas do Morrazo, Pontevedra, Galicia, España, Europa, etc
Mensajes: 490
Antigüedad: 21 años
Puntos: 0
Hola, no ira así:
Código PHP:
unset($_SERVER["PHP_AUTH_USER"]);
unset(
$_SERVER["PHP_AUTH_PW"]); 
si no es así puede ser que sea así:
Código PHP:
unset($PHP_AUTH_USER);
unset(
$PHP_AUTH_PW); 
Un saludo, espero que sea así,
__________________
Pïno
Webmaster de Programas Lynx
Usuario Registrado de Linux #327681

Mi cuerpo en windows, pero mi mente pensando en linux.
  #5 (permalink)  
Antiguo 07/05/2003, 10:17
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Pino, eso como mucho serviria para "borrarlas" en ese script.

El problema con estas "variables" es que PHP no puede controlarlas. El navegador las envia en las cabeceras en todas las peticiones a paginas que el cree que lo necesitan y es Apache el que asigna el valor y lo pone accesible a PHP. El navegador cachea los valores, los almacena. Y no he encontrado ninguna forma de indicarle desde el servidor que se olvide de ellas. La unica "forma" es cerrando el navegador, cosa que depende del lado del cliente, es decir, del terminal humano.

Esta es la forma en que esta definido en HTTP. Desde cierto punto de vista, tiene toda su logica. Pero es un verdadero latazo.

Saludos.

PD: En la pagina del manual indican posibles formas de "engañar" al navegador, pero no creo que nadie haya dado con la solucion definitiva.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #6 (permalink)  
Antiguo 07/05/2003, 10:22
Avatar de Pino  
Fecha de Ingreso: abril-2003
Ubicación: Cangas do Morrazo, Pontevedra, Galicia, España, Europa, etc
Mensajes: 490
Antigüedad: 21 años
Puntos: 0
Hola, josemi gracias por la explicación, ahora ya la entendi, es que no me daba cuenta que esas variables son lo mismo que $REMOTE_ADDR.

Un saludo, Pïno
__________________
Pïno
Webmaster de Programas Lynx
Usuario Registrado de Linux #327681

Mi cuerpo en windows, pero mi mente pensando en linux.
  #7 (permalink)  
Antiguo 07/05/2003, 12:53
Avatar de mdk
mdk
 
Fecha de Ingreso: noviembre-2002
Mensajes: 531
Antigüedad: 21 años, 5 meses
Puntos: 11
Estoy probando una forma de hacerlo, solo que me ocurre un pequeño fallo, pero estoy mirando el porque.

En cuanto consiga que funcione pegaré el código.

La idea es que pregunte el password, y en caso de fallar, lo pregunte 2 veces mas. Eso ya lo conseguí para que cada vez que acceda a la página lo pregunte de nuevo. Lo que me interesa es que si la contraseña es correcta. No vuelva a preguntar el password, pero incluso metiendo variables de sesiones no funciona como deberia.

Un saludo...
__________________
SoY Lo Ke VeS iNKLuSo KuAnDo No Me VeS ;)
  #8 (permalink)  
Antiguo 07/05/2003, 13:01
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
mm y si estas usando autentificación HTTP con PHP (no con .httacces y .htpassword ... ) .. ¿ No sería mejor que usasen sessiones o cookies para el "login" y "seguimiento del usuario" en sus scripts? ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #9 (permalink)  
Antiguo 07/05/2003, 13:10
Avatar de mdk
mdk
 
Fecha de Ingreso: noviembre-2002
Mensajes: 531
Antigüedad: 21 años, 5 meses
Puntos: 11
Como poder usar cookies y sesiones podría, de hecho siempre lo hago asi, lo que pasa es que quiero hacerlo de está manera por el simple hecho de aprender y saber que puedo hacerlo, ademas de por orgullo y sentirme mejor conmigo mismo. Siempre que me planteo conseguir algo, lo acabo consiguiendo, aunque me cueste muchisimo tiempo, pero lo consigo. La verdad es que a parte de este reto, creo que no me queda ninguno mas de programación por ahora, así que como ya dije, cuando consiga el código para que pregunte varias veces el user y pass, y cada vez que entres a la página lo pregunte aunque esté almacenada la variable en el navegador, lo pondre aquí.

__________________
SoY Lo Ke VeS iNKLuSo KuAnDo No Me VeS ;)
  #10 (permalink)  
Antiguo 07/05/2003, 13:24
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
ok, mdk .. Está bien que tomes tus própias conclusiones ..

A mi la verdad no me gusta la autentificacion HTTP gestionada con PHP .. Para algo simple uso .httaccess y .httpasswords .. Pero si voy a usar un sistema de gestion de usuarios para un sitio en PHP uso sessiones con lo cual no tengo esos problemas del "logout" y personalizo mas el formulario de "login". Ademas que no me tengo q pelear con el servicio de hosting de turno que use PHP instalado como CGI (con lo que no vá la autentificación HTTP via PHP) ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #11 (permalink)  
Antiguo 07/05/2003, 14:57
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Pista: que sepas el usuario y contraseña de un reino (realm) no quiere decir que te sirva para otro reino, aunque este reino este en el mismo dominio e incluso sea la misma pagina.

Recuerda, en los RFC se encuentran los standares, entre ellos el de HTTP. Y dentro de este comenta como funciona la atentificacion HTTP. Lo podras localizar en www.w3c.org . No es en PHP, es como funciona HTTP. Si lo comprendes, podras atacar tu problema desde otro punto de vista.

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #12 (permalink)  
Antiguo 07/05/2003, 16:57
Avatar de mdk
mdk
 
Fecha de Ingreso: noviembre-2002
Mensajes: 531
Antigüedad: 21 años, 5 meses
Puntos: 11
Hay alguna forma para que cuando pongas el:
Código PHP:
header('WWW-Authenticate: Basic realm="Privado"'); 
header('HTTP/1.0 401 Unauthorized'); 
te pregunte solo una vez el usuario y contraseña una vez introducido, y no 3 veces como lo pone?
__________________
SoY Lo Ke VeS iNKLuSo KuAnDo No Me VeS ;)
  #13 (permalink)  
Antiguo 07/05/2003, 17:24
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
mdk ..

Esas cabeceras "fuera de contexto" parece que se comportan así ..

Pero, si usas el "código completo" .. veras que sólo pregunta una vez:

Código PHP:
<?php
 
if (!isset($_SERVER['PHP_AUTH_USER'])) {
   
header('WWW-Authenticate: Basic realm="My Realm"');
   
header('HTTP/1.0 401 Unauthorized');
   echo 
'Text to send if user hits Cancel button';
   exit;
 } else {
   echo 
"<p>Hello {$_SERVER['PHP_AUTH_USER']}.</p>";
   echo 
"<p>You entered {$_SERVER['PHP_AUTH_PW']} as your password.</p>";
 }
?>
Extraido del manual oficial de PHP:
http://www.php.net/manual/en/features.http-auth.php

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #14 (permalink)  
Antiguo 07/05/2003, 18:06
Avatar de mdk
mdk
 
Fecha de Ingreso: noviembre-2002
Mensajes: 531
Antigüedad: 21 años, 5 meses
Puntos: 11
Si, si le colocas el if con el !$PHP_AUTH_USER te pregunta solo una vez, xk al introducir el nombre, y comprobar en el if ke la variable $PHP_AUTH_USER ya no esta vacia, no welve a preguntar.

Pero ahi precisamente esta el problema. Porque si pones el if (!$PHP_AUTH_USER ) y ya has introducido un nombre de usuario y contraseña, no te vuelve a hacer la pregunta. Tendria solucionado ya el problema sino es xk pregunta 3 veces x defecto.

Bueno, gracias a todos x la ayuda
__________________
SoY Lo Ke VeS iNKLuSo KuAnDo No Me VeS ;)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:04.