Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: autoryzacja w php
Forum PHP.pl > Forum > PHP
kondziop
Mam autoryzacje:
Kod
session_start();

if (!session_is_registered("uzytkownik"))

{



    if (!sprawdz_uzytk_haslo())

    {

        header('WWW-Authenticate: Basic realm="manage.midlety.net"');

        header('HTTP/1.0 401 Unauthorized');

        echo 'Bez podania prawidłowej nazwy użytkownika i hasła nie możesz tu wejść...';

        exit;

    }

    else

    {

  session_start();

  $user = $_SERVER['PHP_AUTH_USER'];

  session_register("uzytkownik");

    }

}


Wszystko dziala u mnie lokalnie.
Ale na serwerze nie pyta o zadne haslo czy uzytkownika. Od razu pokazuje sie tekst:
Cytat
"'Bez podania prawidłowej nazwy użytkownika i hasła nie możesz tu wejść...":(

Roznica nie jest w wersji php, a w systemie (linux na serwerze, win lokalnie).
Nie bardzo mam pomysl gdzie szukac bledow:(

Przychodzi wam cos do glowy?
kondziop
sprawdzilem to tez ze skryptem z manuala i jest ten sam problem:(
czyli jakby serwer nie pozwalal na autoryzacje?
KaMeLeOn
Podaj kod tej funkcji...
[php:1:b5bd49c655]sprawdz_uzytk_haslo()[/php:1:b5bd49c655]
uboottd
Sprawdz czy na serwerze php jest jako CGI czy jako modul. Np. odpal testoey skrypt z instrukcja phpinfo(), tam to bedzie opisane, sprawdz tez czy w sekcji zmienne apacza jest PHP_AUTH_USER i PHP_AUTH_PASSWORD
kondziop
1. wiesz co, moglbys dokladniej okreslic w jakiej sekcji jest info o tym, czy php dziala jako modol, czy skrypt cgi?

2. A co do tych zmiennych, to wogole nie pojawiaja mi sie w phpinfo() :(, a ciag "auth" pojawia mi sie w zaladowanych modulach apacha (w takich kontekstach jak "mod_auth_any" czy "mod_auth_anon", itp.) i nigdzie wiecej:(
uboottd
Cytat
1. wiesz co, moglbys dokladniej okreslic w jakiej sekcji jest info o tym, czy php dziala jako modol, czy skrypt cgi?


W pierszej... aaevil.gif Pod nazwa Server API

Cytat
2. A co do tych zmiennych, to wogole nie pojawiaja mi sie w phpinfo() sad.gif, a ciag "auth" pojawia mi sie w zaladowanych modulach apacha (w takich kontekstach jak "mod_auth_any" czy "mod_auth_anon", itp.) i nigdzie wiecej:(


To strzelam ze jednak CGI.

Acha, nie PHP_AUTH_PASSWORD tylko PHP_AUTH_PW - mylnelo mnie sie.

Jesli masz CGI to zapommnij o takiej autoryzacji - musisz zrobic wlasny normalny formularz
itsme
http://forum.php.pl/viewtopic.php?t=2106 moze tam znajdziesz cos ciekawego dla siebie
kondziop
W Server API mam napisane "Apache".
Czy to rzeczywiscie znaczy, ze nie dam rady zrobic tego typu autoryzacji?

jakby tak rzeczywiscie bylo, to duzo to kosztuje admina pracy zmienic sposob pracy php? Pewnie musialby przeladowac apacha?
I czy duze to konsekwencje ponosi za soba (chodzi mi tylko o skrypty php)?
Pytam, bo do tej pory jak przenosilem swoje skrypty na ten serwer, to napotykalem tylko ograniczenia z jego strony. To mogloby tlumaczyc wszystkie:)

Czyli jak php pracuje jako modul, to ma szersza uzytecznosc, gdy chodzi jako cgi?
uboottd
Hmm... wyglada na modul. Pokaz zawartosc funkcji sprawdz_haslo.
I czy nie jest o problem register global off ?
kondziop
Kod
function sprawdz_uzytk_haslo()

{

    global $_SERVER;

    global $users;

    global $passwords;

    if (!isset($_SERVER['PHP_AUTH_USER'])) return(false);

    for ($i=0;$i<count($users);$i++)

  if ( ($users[$i]==$_SERVER['PHP_AUTH_USER']) && ($passwords[$i]==$_SERVER['PHP_AUTH_PW']) )

  return(true);

    return(false);

}



$users = array("user1","user2");

$passwords = array("pass1","pass2");





session_start();

if (!session_is_registered("uzytkownik"))

{



    if (!sprawdz_uzytk_haslo())

    {

        header('WWW-Authenticate: Basic realm="myRealm.pl"');

        header('HTTP/1.0 401 Unauthorized');

        echo 'Bez podania prawidłowej nazwy użytkownika i hasła nie możesz tu wejść...';

        exit;

    }

    else

    {

  session_start();

  $user = $_SERVER['PHP_AUTH_USER'];

  session_register("uzytkownik");

    }

}

Tak wyglada caly plik. Ten skolei jest includowany na poczatku kazdego pliku, do ktorego wglad grozi zbyt duzymi prawami. Taki moj panel zarzadzania:)
KaMeLeOn
[php:1:9e0d9a6e4b]global $_SERVER;[/php:1:9e0d9a6e4b]
Ta tablica jest superglobalna, więc nie ma potrzeby...
[php:1:9e0d9a6e4b]global $users;
global $passwords;[/php:1:9e0d9a6e4b]
Sorry, ale to wielki błąd...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.