Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> autoryzacja w php
kondziop
post 16.04.2003, 17:12:03
Post #1





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 19.09.2002

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
kondziop
post 16.04.2003, 17:27:22
Post #2





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 19.09.2002

Ostrzeżenie: (0%)
-----


sprawdzilem to tez ze skryptem z manuala i jest ten sam problem:(
czyli jakby serwer nie pozwalal na autoryzacje?
Go to the top of the page
+Quote Post
KaMeLeOn
post 16.04.2003, 22:32:07
Post #3





Grupa: Zarejestrowani
Postów: 680
Pomógł: 0
Dołączył: 1.10.2002
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Podaj kod tej funkcji...
[php:1:b5bd49c655]sprawdz_uzytk_haslo()[/php:1:b5bd49c655]


--------------------
"Czerp z innych, ale nie kopiuj ich. Bądź sobą." Michel Quoist
Go to the top of the page
+Quote Post
uboottd
post 17.04.2003, 08:35:37
Post #4





Grupa: Zarejestrowani
Postów: 384
Pomógł: 0
Dołączył: 3.04.2003
Skąd: Chorzow

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
kondziop
post 17.04.2003, 13:07:59
Post #5





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 19.09.2002

Ostrzeżenie: (0%)
-----


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:(
Go to the top of the page
+Quote Post
uboottd
post 18.04.2003, 09:32:56
Post #6





Grupa: Zarejestrowani
Postów: 384
Pomógł: 0
Dołączył: 3.04.2003
Skąd: Chorzow

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
itsme
post 18.04.2003, 10:05:52
Post #7





Grupa: Zarząd
Postów: 1 512
Pomógł: 2
Dołączył: 22.04.2002
Skąd: Koszalin




http://forum.php.pl/viewtopic.php?t=2106 moze tam znajdziesz cos ciekawego dla siebie


--------------------
brak sygnaturki rowniez jest sygnaturką
Go to the top of the page
+Quote Post
kondziop
post 18.04.2003, 15:47:55
Post #8





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 19.09.2002

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
uboottd
post 18.04.2003, 18:23:20
Post #9





Grupa: Zarejestrowani
Postów: 384
Pomógł: 0
Dołączył: 3.04.2003
Skąd: Chorzow

Ostrzeżenie: (0%)
-----


Hmm... wyglada na modul. Pokaz zawartosc funkcji sprawdz_haslo.
I czy nie jest o problem register global off ?
Go to the top of the page
+Quote Post
kondziop
post 18.04.2003, 19:18:15
Post #10





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 19.09.2002

Ostrzeżenie: (0%)
-----


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:)
Go to the top of the page
+Quote Post
KaMeLeOn
post 19.04.2003, 16:30:27
Post #11





Grupa: Zarejestrowani
Postów: 680
Pomógł: 0
Dołączył: 1.10.2002
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


[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...


--------------------
"Czerp z innych, ale nie kopiuj ich. Bądź sobą." Michel Quoist
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 07:40