2010-09-07 14 views
34

Por alguna razón, ninguno de código dentro de laPHP_AUTH_USER no configurado?

if (isset($_SERVER['PHP_AUTH_USER']) && 
    isset($_SERVER['PHP_AUTH_PW'])) 

{ 



// When the above is set, the code that is here will execute of course 

} 

se está ejecutando para mí. Cuando ingreso el nombre de usuario y la contraseña correctos, aparece de nuevo el cuadro de solicitud para la autorización. ¿No se "establecerán" ambos campos si son correctos y presionaré Enter? Pero por alguna razón, ese no es el caso. ¿Qué puedo estar haciendo mal? Gracias.

Respuesta

2

Probar $_SERVER['REMOTE_USER']. Esto funciona para mí en una instalación PHP 5.3 CGI + Apache.

+0

Gracias, esto funcionó para mí en alojamiento OVH – Destroyica

+0

No funcionó para mí en una configuración de cPanel FPM – Okneloper

57

hay una 'forma sensata' para utilizar autenticación básica de HTTP en PHP-CGI modo: en el uso de .htaccess

RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 

y en el uso de PHP

list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) = 
    explode(':', base64_decode(substr($_SERVER['HTTP_AUTHORIZATION'], 6))); 
+8

Por alguna razón, en mi servidor tuve que usar $ _SERVER ['REDIRECT_HTTP_AUTHORIZATION'] – ChrisV

+0

Esto funciona, pero cada página devuelve un 404 no encontrado a pesar de que la página es se muestra correctamente – jx12345

+0

Lo siento, recogí la siguiente reescritura de otra página: RewriteRule. * - [E = HTTP_AUTHORIZATION:% {HTTP: Authorization}, L] y el L final estaba causando mis errores 404 – jx12345

1

Si el acceso del usuario es otorgado dando nombre de usuario/contraseña en el URL compruebe si

AuthType Digest 

tiene derecho en su host/Directorio/Configuratio .htaccess en.

Esto lo arregló para mi caso de uso.

-3

En los servidores de mi host, utilice $_SERVER['REDIRECT_REMOTE_USER'] en lugar de $_SERVER['PHP_AUTH_USER']

+3

por qué -4 votos a la baja – DanFromGermany

3

En mi phpinfo() API se Sever CGI/Fast CGI. Así que he resuelto mi problema con la escritura siguiente en mi archivo .htaccess RewriteEngine on RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ app.php [QSA,L]

17

probar este

<IfModule mod_rewrite.c> 
RewriteEngine on 
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L] 
</IfModule> 

en su archivo .htaccess que se tendrá que colocar en el directorio raíz

y entonces

list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) = explode(':' , base64_decode(substr($_SERVER['HTTP_AUTHORIZATION'], 6))); 

en el inicio de sus scripts PHP

9

Estoy usando Symfony 2.5.7 eunning en PHP-PFM + Apache 2.4 en Ubuntu 14.04. también tienen Basic_Auth de trabajo también necesito configurar correctamente el VirtualHost de Apache añadiendo: "(. *)"

SetEnvIf Autorización HTTP_AUTHORIZATION = $ 1

como también se menciona aquí https://stackoverflow.com/a/17490827/435956

+0

PHP se está ejecutando como "FPM/FastCGI" en mi máquina, y estoy usando la configuración descrita [aquí] (https: // echo. co/blog/os-x-1010-yosemite-local-desarrollo-ambiente-apache-php-y-mysql-homebrew). Esta respuesta contiene lo único que tenía que hacer para solucionar el problema. – Adrian

+0

mismo aquí: PHP ejecutándose en modo PHP-FPM, apache 2.4, centOS. Solo tuve que agregar esa línea a mi configuración de vhost y funcionó perfectamente, sin cambios en el lado de PHP –

+0

Funciona sin tener que modificar el código. Esta debería ser la respuesta aceptada. – Okneloper

Cuestiones relacionadas