2011-01-24 15 views
21

Konstruuję wysyłkę, dzięki której osoby, które znam, będą mogły bezpiecznie wysyłać mi pliki z łatwością. Ale chcę zaprojektować go tak, aby gdy jeden z moich znajomych zalogował się pod numerem , logując się na numer (może to być login .htaccess), mogę ustalić, że w PHP i zapisać swój plik w bazie danych powiązanej z jego kontem .Użyj PHP, aby wykryć, który użytkownik htaccess jest zalogowany?

Krótko mówiąc, potrzebuję PHP, aby móc wykryć, kto jest zalogowany, aby móc przekazać te dane do bazy danych.

Czy jest jakiś sposób na zrobienie tego?

+2

'print_r ($ _ SERVER)' lub phpinfo (32); za każdym razem masz podobne pytanie –

Odpowiedz

24

Powinieneś być w stanie uzyskać nazwę użytkownika z podpisaną w ze zmiennej $_SERVER['REMOTE_USER'] użytkownik po pomyślnym zalogowaniu.

+1

Z podręcznika PHP: "Od wersji PHP 4.3.0, aby uniemożliwić komuś napisanie skryptu, który ujawnia hasło do strony, która została uwierzytelniona przez tradycyjny mechanizm zewnętrzny, zmienne PHP_AUTH będą nie można ustawić, jeśli włączona jest autoryzacja zewnętrzna dla tej konkretnej strony i włączony jest tryb bezpieczny, bez względu na to, REMOTE_USER może być użyty do identyfikacji użytkownika uwierzytelnionego zewnętrznie. " Używamy '$ _SERVER ['REMOTE_USER']' na wielu naszych stronach i to działa. –

+0

Mówi to na stronie, która popiera 'PHP_AUTH_USER'. Dodałem dwa grosze na temat 'REMOTE_USER' jako innej opcji/obejmują specjalne przypadki zewnętrznego uwierzytelniania. Link: http://php.net/manual/en/features.http-auth.php –

+1

Chalk to różnica w dokumentacji między dwiema stronami (ponieważ [ta strona dokumentu go nie posiada] (http: // php.net/manual/en/reserved.variables.server.php)) ... – ircmaxell

7

pewnością chcesz $_SERVER['PHP_AUTH_USER'] i $_SERVER['PHP_AUTH_PW'] odzyskać nazwę użytkownika i hasło, zakładając, że oznacza zwykłe logowanie "podstawowe uwierzytelnienie", jak to robią ustawienia Require valid-user w pliku .htaccess.

więcej informacji here.

2

Można go odczytać z $_SERVER['PHP_AUTH_USER']

1

myślę następujące zmienne daje derise informacje:

PHP_AUTH_USER: Podczas uwierzytelniania HTTP ta zmienna jest ustawiona na nazwę użytkownika dostarczonym przez użytkownika.

PHP_AUTH_PW: Podczas uwierzytelniania HTTP ta zmienna jest ustawiona na hasło podane przez użytkownika.

echo "<p>Hello {$_SERVER['PHP_AUTH_USER']}.</p>"; 
echo "<p>You entered {$_SERVER['PHP_AUTH_PW']} as your password.</p>"; 
5

Coś który pracował dla mnie:

$_SERVER['REDIRECT_REMOTE_USER'] 

Spróbuj wyżej. Ogólnie rzecz biorąc, można zrobić "print_r($_SERVER)" i znaleźć szukany parametr.

0

nie otworzyć starą zadanie, ale działa PHP 5 z Apache 2.2 i jest to zmienna, która pracuje dla mnie:

$_SERVER['USER']; 
Powiązane problemy