ďťż
Podstrony
|
telcocafeWitam, mam problem, w pewnym skrypcie stytystyk mam zastosowana funkcje autoryzacji:#-------------------- function autoryzacja() { global $qstat; if ( (!isset($_SERVER["PHP_AUTH_USER"])) || ! (($_SERVER["PHP_AUTH_USER"] == $qstat["login"]) && ( $_SERVER["PHP_AUTH_PW"] == $qstat["pass"])) ) { header("WWW-Authenticate: Basic realm=\"Statystyki\""); header("HTTP/1.0 401 Unauthorized"); print("Dostęp zabroniony..."); exit; } } #-------------------- Dotychczas na wszystkich serwerach jakie posiadam dzialala ona poprawnie, niestety wykupilem nowe konto i jest problem z logowaniem do panelu. Skrypt zachowuje sie tak jakbym podawal zly login lub haslo i nie pozwala dostac sie na strone. Na innym serwerze ktory btw. ma ta sama wersje PHP 5.2.10 wszystko dziala bez zarzutu. Gdzie moze byc problem, licze na pomoc... Nie wszystkie serwery obsługują autoryzację HTTP i nie ma to związku z wersją PHP. Po prostu musisz zmienić sposób autoryzacji albo hosting. Dla pewności wstaw kod na początku funkcji:if(isset($_SERVER['PHP_AUTH_USER']) OR isset($_SERVER['PHP_AUTH_PW'])) var_dump('AUTORYZACJA DZIAŁA'); Użytkownik Ferrari edytował ten post 05 listopad 2009, 14:30 spróbuj $PHP_AUTH_USER i _PW lub $_PHP_... to zależy od wersji php jaką masz na serwerze a jak nie to zrób inny system logowania ;-) @uve: Jakieś błędy? W trybie bezpiecznym zmienne PHP_AUTH_USER, PHP_AUTH_PW, i AUTH_TYPE nie są dostępne w $_SERVER. @piotr94: Autor napisał, że są takie same wersje. Zresztą czy zmienna $PHP_AUTH_USER sama w sobie jest jeszcze obsługiwana w PHP 5? w PHP5 nie są obsługiwane, owszem, ale sam miałem kiedyś taką anomalię na swojej stronie i właśnie takie zmiany pomogły. Ale tak jak pisałem - najlepiej w ogóle nie bawić się w w autoryzację http, tylko zrobić normalne logowanie spróbuj $PHP_AUTH_USER i _PW lub $_PHP_... register_globals już nie będzie w PHP 6. Stwarza problemy z bezpieczeństwem i dezorientuje nowych programistów. Zaleca się używać $_SERVER, $_GET, $_POST, itd. dla zmiennych superglobalnych. Użytkownik Ferrari edytował ten post 05 listopad 2009, 21:02 @uve: Jakieś błędy? Żadnych błędów, skrypt zachowuje się tak jakbym podawał zły login lub hasło. Miałem wyłączoną funkcje register_globals, po wlaczeniu poprzez wgranie pliku php.ini z zawartoscia safe_mode=on register_globals=on, nic sie niestety nie zmienilo... :( PHP Version 5.2.10 Jakies pomysły jeszcze? Nie wszystkie serwery obsługują autoryzację HTTP i nie ma to związku z wersją PHP. Po prostu musisz zmienić sposób autoryzacji albo hosting. Dla pewności wstaw kod na początku funkcji:if(isset($_SERVER['PHP_AUTH_USER']) OR isset($_SERVER['PHP_AUTH_PW'])) var_dump('AUTORYZACJA DZIAŁA'); Po wstawieniu kodu, normalnie pojawia sie okno logowania, jednak wciaz zachowuje sie jakby byl zly login/haslo. Użytkownik uve edytował ten post 05 listopad 2009, 21:41 Czyli nic nie zrobisz. Serwer nie przekazuje zmiennych PHP_AUTH_PW. Możesz jeszcze dla pewności wstawić w odpowiednim miejscu - tak, aby wykonał się dopiero po wpisaniu loginu i hasła (możesz wykorzystać np. sesje):var_dump($_SERVER, $_ENV);Po próbie zalogowania powinieneś ujrzeć wszystkie dostępne zmienne superglobalne, upakowane w tablicach $_SERVER i $_ENV. Być może login i hasło są przekazywane pod inną nazwą, chociaż wątpię. Użytkownik Ferrari edytował ten post 05 listopad 2009, 22:34 Dzieki za pomoc, z tego co sie zorientowalem to problem jest w tym ze na nowym serwerze mam PHP jako CGI a nie modul Apacha. Zauwazylem, ze niektore skrypty ktore dzialaly na starym serwerze teraz odmawiaja posluszenstwa. Np. do pokazywania ilosci online userow na stronie. Czy PHP jako CGI jest wiec wada, czy to normalne zeby tak byl skonfigurowany serwer? hmm, a gdzie masz hosting? Ja się nigdy nie spotkałem z php jako CGI, dziwne to bo POWINNO być php jako interpreter na Apache... hmm, a gdzie masz hosting? Ja się nigdy nie spotkałem z php jako CGI, dziwne to bo POWINNO być php jako interpreter na Apache... Hosting mam w neteasy.pl. Tez sie zdziwilem ze PHP mam jako CGI, ale tylko dlatego z na 3 innych serwerach jest jako modow Apacha. Na pytanie czy PHP nie powinno dzialac jako moduł Apacha dostalem do supportu odpowiedz: "Witam, przykro mi, ale nie znam zadnej wiekszej firmy, ktora uzywalaby takiego sposobu wykonywania PHP na serwerze w polaczeniu z serwerem Apache. Powoduje to zbyt duzo problemow bezpieczenstwa. net.easy Nie znam się specjalnie wiec nie wdawalem sie w dyskusje, co myslicie? Użytkownik uve edytował ten post 12 listopad 2009, 17:53 http://www.loprez.pl/info.php zobacz sobie na to i jakbyś mógł to pokaż swoje <?phpinfo();?> tam niby też jest przez CGI, ale wszystko działa normalnie... Choć i tak najbardziej lubię pracować na własnym serwerze na Linux ;-) Konfiguracja php: http://yomedia.pl/php.php Moze ona cos powie... Użytkownik uve edytował ten post 12 listopad 2009, 17:56 hmm, wszystko wygląda OK.... w tej sytuacji napisz do właścicieli hostingu zapytanie o te zmienne systemowe Użytkownik piotr94 edytował ten post 12 listopad 2009, 19:32 |
|||
Sitedesign by AltusUmbrae. |