Foros del Web » Programando para Internet » PHP »

_server["php_auth_user"]

Estas en el tema de _server["php_auth_user"] en el foro de PHP en Foros del Web. Hola todos. Por favor alguien me puede explicar sobre la variable _SERVER["PHP_AUTH_USER"] Resulta que tengo un script que se ejecuta pefectamente en un server pero ...
  #1 (permalink)  
Antiguo 27/10/2005, 20:30
(Desactivado)
 
Fecha de Ingreso: septiembre-2004
Mensajes: 360
Antigüedad: 13 años, 2 meses
Puntos: 1
_server["php_auth_user"]

Hola todos.
Por favor alguien me puede explicar sobre la variable
_SERVER["PHP_AUTH_USER"]
Resulta que tengo un script que se ejecuta pefectamente en un server pero en otro donde lo instalé no hay manera.
Mirando el phpinfo.php de cada server veo diferencias, entre ellas esta variable.
Para activarla tiene que estar cargada en el php.ini ?
O cómo es la cosa ?
Muchas gracias de antemano

---Estoy editando :)
El tema es porque las register_globals están on en un server y off en el otro.
Entonces para poder correr el script con dichas variables en cualquier estado agrego esto en la cabecera de mi código:
Código PHP:
if(!empty($_GET)) extract($_GET);
if(!empty(
$_POST)) extract($_POST);
if(!empty(
$_COOKIE)) extract($_COOKIE);
if(!empty(
$_SERVER)) extract($_SERVER);
if(!empty(
$_FILES)) extract($_FILES);
if(!empty(
$_ENV)) extract($_ENV);
if(!empty(
$_SESSION)) extract($_SESSION); 
Por si le sirve a alguien ;)

Última edición por Suyta; 28/10/2005 a las 01:04
  #2 (permalink)  
Antiguo 28/10/2005, 01:02
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
Hola:

Esa variable predefinida se utiliza para autentificación HTTP y toma como valor la cadena que el usuario escriba en al ventanita de autentifiación.
Si ejecutas el siguiente ejemplo, verás la ventanita de la que hable y los valores que toma la variable $_SERVER["PHP_AUTH_USER"] y $_SERVER["PHP_AUTH_PWD"].
Código PHP:
<?php
   
if (!isset($_SERVER['PHP_AUTH_USER'])) {
      
header('WWW-Authenticate: Basic realm="Acceso restringido"');
      
header('HTTP/1.0 401 Unauthorized');
      echo 
'Se requiere autorización';
      exit;
   }
   else {
      echo 
"Introdujiste usuario: ".$_SERVER['PHP_AUTH_USER']."<br />";
      echo 
"Introdujiste contraseña: ".$_SERVER['PHP_AUTH_PW']."<br />";
   }
?>
Así que es poco probable que el problema esté por ahí.

Saludos
  #3 (permalink)  
Antiguo 28/10/2005, 06:57
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Si PHP lo usas como CGI .. no podrás usar autentificación HTTP.

Revisa en tu phpinfo() como está instalado PHP en ese servidor que te dá problemas. En el apartado "Server API" del primer bloque de información que entrega phpinfo() lo veras ..

Un saludo,
  #4 (permalink)  
Antiguo 28/10/2005, 06:59
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
El tema es porque las register_globals están on en un server y off en el otro.
Entonces para poder correr el script con dichas variables en cualquier estado agrego esto en la cabecera de mi código:
Por qué no usas los arrays superglobales directamente? .. eso es indiferente de la configuración de register_globals (sea a ON o a OFF) y además te aporta seguridad.

Un saludo,
  #5 (permalink)  
Antiguo 28/10/2005, 10:48
(Desactivado)
 
Fecha de Ingreso: septiembre-2004
Mensajes: 360
Antigüedad: 13 años, 2 meses
Puntos: 1
Gracias por leerme chicos y por ayudarme !
Lo solucioné pero tengo dudas.

1 - Se aconseja tener register_globals en off. Agregando el código que pegué en mi mensaje anterior... hago mi código más vulnerable ?... es decir... soluciono el tema y puedo correr mi script pero a costa de la seguridad ? o no ?
2 - Y vinculado al punto "1"... por favor Cluster podrías explicarme eso de "arrays superglobales"... no llego hasta ahí.

Besos :)

P.D.: tengo PHP como módulo de Apache.
  #6 (permalink)  
Antiguo 28/10/2005, 14:39
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Revisa está FAQ:
http://www.forosdelweb.com/showthrea...989#post238989

Y este documento en general sobre seguridad en PHP:
http://phpsec.org/projects/guide/

Un saludo,
  #7 (permalink)  
Antiguo 28/10/2005, 15:21
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
Bueno, el tema de la directiva register globals sí es determinante y puede hacer que tus scripts no funcionen correctamente.

Lo de utilizar arrays superglobales se refiere simplemente a identificar el origen de las variables. O sea, que si envías una variable por url así:
archivo.php?var1=valor1
en lugar de recogerla así:
echo $var1;
La recoges así:
echo $_GET['var1'];

Lo mismo con las variables que provienen de un formulario
$_POST['var1'];
La que lees de la sesión:
$_SESSION['var1'];
Las de cookies:
$_COOKIE['var1'];

--------------------

Si lo haces así, no importará si la directiva register globals está activada... tu script siempre funcionará.

En los enlaces que te puso Cluster, está bastante más en detalle y justificado.

Saludos
  #8 (permalink)  
Antiguo 29/10/2005, 01:59
(Desactivado)
 
Fecha de Ingreso: septiembre-2004
Mensajes: 360
Antigüedad: 13 años, 2 meses
Puntos: 1
Realmente muchísimas gracias !!!!

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 02:53.