Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> nie dzialajacy system logowania www
maniek2410
post 19.09.2008, 18:53:36
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
Go to the top of the page
+Quote Post
pyro
post 19.09.2008, 19:06:16
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
Go to the top of the page
+Quote Post
maniek2410
post 19.09.2008, 19:19:32
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
Go to the top of the page
+Quote Post
hateman
post 19.09.2008, 21:15:54
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 smile.gif
Go to the top of the page
+Quote Post
maniek2410
post 19.09.2008, 22:07:15
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
Go to the top of the page
+Quote Post
elmozaur
post 20.09.2008, 10:58:37
Post #6





Grupa: Zarejestrowani
Postów: 518
Pomógł: 18
Dołączył: 21.07.2008

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


Cytat(maniek2410 @ 19.09.2008, 23:07:15 ) *
$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 ;-)

  1. <?php
  2. $log=slownik($imie);
  3. $pass=slownik($nazwisko);
  4.  
  5.    $uchwyt_polaczenia = mysql_connect($baza_host, $baza_user, $baza_pass);
  6.    @mysql_select_db($baza_baza, $uchwyt_polaczenia);    
  7.    $zapytanie = "SELECT * FROM ludzie WHERE log='$log' AND pass='$pass'";
  8.    $rezultat = mysql_query($zapytanie, $uchwyt_polaczenia);
  9.    $wiersz = mysql_fetch_array($rezultat);
  10.    
  11. if ($wiersz[0]!="")
  12. {
  13.    session_start();
  14.    $id=$wiersz['id'];
  15.    $_SESSION['u_i']=$wiersz['id']; // numer uzytkownik
  16.    $_SESSION['u_p']=$wiersz['prawa']; // prawa uzytkownika
  17.  
  18.    $adres= $strona_adres.'/tresc/';
  19.    Header('HTTP/1.1 301 Moved Permanently');
  20.    Header('Locatio: '.$adres);
  21. } else {
  22. echo 'niezalogowany';
  23. }
  24. ?>



to tylko kawalek kodu mojego logowania ale jest o niebo latwiejszy i dziala na php4 i php5
pozdro
Grzechu
Go to the top of the page
+Quote Post
maniek2410
post 20.09.2008, 17:40:48
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?
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: 18.07.2025 - 08:34