![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 25.03.2005 Ostrzeżenie: (0%) ![]() ![]() |
nagle przestal mi dzialac napisany przeze mnie system logowania na strone www, sadze ze moze miec to wplyw ze hosting wprowadzil mi nowa wersje php(php 5.2.5) co w tym kodzie jest niezgodne ze standartem?
CODE <?php
$url = 'l*'; $identyfikator = '*'; $haslo = '*'; $baza_danych="*"; $tabela="*"; if (session_is_registered("wylogowany")) {unset($_SERVER['PHP_AUTH_USER']); $wynik=session_unregister("wylogowany");} if (! session_is_registered("prawid_uzyt")) //jeśli uzytkownik nie jest zalogowany oraz jest to pierwsza proba wpisania nazwy uzytkownika { if (!isset($_SERVER['PHP_AUTH_USER'])) { header('WWW-Authenticate: Basic realm="Tajne miejsce"'); header('HTTP/1.0 401 Unauthorized'); echo 'Brak dostępu'; echo'<meta http-equiv="refresh" content="1; url=../index.php">' ; exit; } else if (isset($_SERVER['PHP_AUTH_USER'])) //uzytkownik podal swój nickname { $bd_lacz=mysql_connect($url, $identyfikator, $haslo); mysql_select_db($baza_danych); $pom1 = $_SERVER['PHP_AUTH_USER']; $pom2 = $_SERVER['PHP_AUTH_PW']; $zapytanie="select * from $tabela where user='$_SERVER['PHP_AUTH_USER']' and password='$_SERVER['PHP_AUTH_PW']'"; $wynik=mysql_query($zapytanie); if(mysql_num_rows($wynik)>0) // jeżeli dane są w bazie zarejestrowanie identyfikatora użytkownika { $prawid_uzyt=$_SERVER['PHP_AUTH_USER']; session_register("prawid_uzyt"); } else { header('WWW-Authenticate: Basic realm="Tajne miejsce"'); header('HTTP/1.0 401 Unauthorized'); echo 'Brak dostępu'; echo'<meta http-equiv="refresh" content="1; url=../index.php">' ; exit; } } } if (session_is_registered("prawid_uzyt")) { echo'<meta http-equiv="refresh" content="0; url=baza_danych.php">' ; } ob_end_flush();//koniec buforowania danych ?> Ten post edytował maniek2410 19.09.2008, 18:54:18 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 148 Pomógł: 230 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
nie ma to jak domyslanie sie co ci nie dziala...
-------------------- ET LINGUA EIUS LOQUETUR IUDICIUM
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 25.03.2005 Ostrzeżenie: (0%) ![]() ![]() |
chodzi o to ze pomimo wprowadzenia poprawnego uzytkownika i hasla(sprawdzalem w bazie danych) nie moge sie zalogowac
Ten post edytował maniek2410 19.09.2008, 19:20:49 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 86 Pomógł: 18 Dołączył: 28.04.2008 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
takie rozwiązanie sesji stosowało się w PHP 4
session_is_registered() Powinieneś pozamieniać to sobie na zmienne sesyjne: $_SESSION[ ] Tworzysz sobie zmienną przy logowaniu np. Kod $_SESSION['zalogowany'] = 'OK'; A później sprawdzasz czy taka zmienna sesyjna istnieje Kod if($_SESSION['zalogowany'] == 'OK') Jak tak to znaczy, że zalogowany ![]() |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 25.03.2005 Ostrzeżenie: (0%) ![]() ![]() |
zmodernizowalem kod, ale efekt jest ten sam, mozesz zobaczyc czy nie ma w nim bledow?
CODE <?php ob_start(); //funkcja uruchamiajaca buforowanie, pozwala na ponowne wysłanie nagłowka(Header) session_start(); //początek sesji $url = '*'; $identyfikator = '*'; $haslo = '*'; $baza_danych="*"; $tabela="*"; if($_SESSION['wylogowany'] == 'OK') { unset($_SERVER['PHP_AUTH_USER']); $_SESSION['wylogowany'] = 'FALSE'; } if($_SESSION['prawid_uzyt'] != 'OK') //jeśli uzytkownik nie jest zalogowany oraz jest to pierwsza proba wpisania nazwy uzytkownika { if (!isset($_SERVER['PHP_AUTH_USER'])) { header('WWW-Authenticate: Basic realm="Tajne miejsce"'); header('HTTP/1.0 401 Unauthorized'); echo 'Brak dostępu'; echo'<meta http-equiv="refresh" content="1; url=../index.php">' ; exit; } else if (isset($_SERVER['PHP_AUTH_USER'])) //uzytkownik podal swój nickname { $bd_lacz=mysql_connect($url, $identyfikator, $haslo); mysql_select_db($baza_danych); $pom1 = $_SERVER['PHP_AUTH_USER']; $pom2 = $_SERVER['PHP_AUTH_PW']; $zapytanie="select * from $tabela where user='$pom1' and password='$pom2'"; //sprawdzenie czy uzytkownik podal poprawne dane $wynik=mysql_query($zapytanie); if(mysql_num_rows($wynik)>0) // jeżeli dane są w bazie zarejestrowanie identyfikatora użytkownika { $prawid_uzyt=$_SERVER['PHP_AUTH_USER']; $_SESSION['prawid_uzyt'] = 'OK'; } else { header('WWW-Authenticate: Basic realm="Tajne miejsce"'); header('HTTP/1.0 401 Unauthorized'); echo 'Brak dostępu'; echo'<meta http-equiv="refresh" content="1; url=../index.php">' ; exit; } } } if($_SESSION['prawid_uzyt'] == 'OK') { echo'<meta http-equiv="refresh" content="0; url=baza_danych.php">' ; } ob_end_flush();//koniec buforowania danych ?> Ten post edytował maniek2410 19.09.2008, 22:07:48 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 518 Pomógł: 18 Dołączył: 21.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
$zapytanie="select * from $tabela where user='$pom1' and password='$pom2'"; //sprawdzenie czy uzytkownik podal poprawne dane Po pierwsze $tabela powinna byc w apostrofach ;-) Po drugie: kosmicznie zagmatwane to wszystko ;-)
to tylko kawalek kodu mojego logowania ale jest o niebo latwiejszy i dziala na php4 i php5 pozdro Grzechu |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 25.03.2005 Ostrzeżenie: (0%) ![]() ![]() |
tylko ze Ty masz logowanie przez formularz a nie ten system wbudowany w przegladarke tak?
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 18.07.2025 - 08:34 |