2012-09-24 10 views
6

Ho provato ad aggiornare la versione php del mio VPS ma non ha funzionato e il mio provider non mi ha aiutato molto, quindi l'ho effettuato il downgrade alla versione precedente.

Attualmente sto lavorando con PHP 5.2.17 (cli). Tutto funzionava correttamente in questa versione.

Poiché questo aggiornamento e downgrade, la variabile $_SERVER['PHP_AUTH_USER'] è vuota. (Nel php.ini, register_globals è 'acceso' e $_SERVER['PHP_SELF'] funziona correttamente).

Mi chiede correttamente il nome utente e la password e sono riuscito a collegarmi ma ho bisogno di usare $_SERVER['PHP_AUTH_USER'].

Ho provato $_SERVER['PHP_AUTH_USER'], $_SERVER['AUTH_USER'], $_SERVER['REMOTE_USER'] nessuna chiave funziona. (ma non ho mai ricevuto alcun errore, solo un valore vuoto ...)

risposta

12

ho finalmente trovato la risposta grazie a 'mbinette'.

Nella mia configurazione di PHP, il gestore di PHP 5 era CGI e questo tipo di autenticazione non funziona con PHP CGI. Così l'ho cambiato in suPHP (che dovrebbe essere quello predefinito su APACHE).

Find here un post che spiega un modo di utilizzare CGI e PHP_AUTH, ma ho provato e non funzionava.

Find here alcune spiegazioni sui gestori php

+0

Felice di aver trovato la soluzione! Onestamente non avevo idea di cosa potesse essere (l'unico problema che ho mai avuto riguardava la modalità sicura) ..! Saluti! – mbinette

+0

Grazie per l'aiuto! – BastienSander

+0

I collegamenti non funzionano –

3

La modalità sicura è attivata? Questo potrebbe essere il tuo problema ...

partire da PHP 4.3.0, al fine di impedire a qualcuno di scrivere uno script che rivela la password di una pagina che è stata autenticata tramite un meccanismo esterno tradizionale , il PHP_AUTH le variabili non saranno impostate se l'autenticazione esterna è abilitata per quella particolare pagina e la modalità sicura è abilitata. Indipendentemente da ciò, REMOTE_USER può essere utilizzato per identificare l'utente autenticato esternamente. Quindi, puoi utilizzare $ _SERVER ['REMOTE_USER'].

Fonte: http://php.net/manual/en/features.http-auth.php

+0

Nel mio file php.ini, ho: safe_mode = Off – BastienSander

+0

Sei sicuro che il problema deriva da PHP? (e non qualcosa del genere: http://stackoverflow.com/questions/5037046/serverphp-auth-user-empty?). Inoltre, puoi assicurarti che error_reporting sia attivo e che non siano stati lanciati errori prima di questo? – mbinette

+0

error_reporting = E_ALL & ~ E_NOTICE e display_errors = on – BastienSander