Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Logowanie
rafkam
post 12.10.2002, 18:56:11
Post #1





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 24.06.2002

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


Kod
<?



if ((!$username) || (!$password)) {

    header("Location: http://localhost/show_login.html");

    exit;

}





$db_name = "test";

$table_name = "logowanie";



$connection = @mysql_connect("localhost", "", "")

    or die("Couldn't connect.");



$db = mysql_select_db($db_name, $connection)

    or die("Couldn't select database.");



$sql = "SELECT * FROM $table_name

    WHERE username = "$username" AND password = password("$password")

    ";



$result = mysql_query($sql)

        or die ("Can't execute query.");



$num = mysql_numrows($result);



if ($num != 0) {



    $cookie_name = "auth";

    $cookie_value = "ok";

    $cookie_expire = "";

    $cookie_domain = "";

    

    setcookie($cookie_name, $cookie_value, $cookie_expire, "/" , $cookie_domain, 0);

itd..

W bazie obok userów zamiescilem kolumne z levelami dostepu. Jak zrobić aby po podaniu sprawdzał oprócz login i haslo odpowiedni level i przekierowywal go na taką odpowiednia mu strone.
Go to the top of the page
+Quote Post
BzikOS
post 13.10.2002, 10:08:31
Post #2





Grupa: Przyjaciele php.pl
Postów: 660
Pomógł: 0
Dołączył: 28.08.2002
Skąd: Starachowice

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


Kod
<?



if ((!$username) || (!$password)) {

    header("Location: http://localhost/show_login.html");

    exit;

}





$db_name = "test";

$table_name = "logowanie";



$connection = @mysql_connect("localhost", "", "")

    or die("Couldn't connect.");



$db = mysql_select_db($db_name, $connection)

    or die("Couldn't select database.");



$sql = "SELECT * FROM $table_name

    WHERE username = "$username" AND password = password("$password")

    ";



$result = mysql_query($sql)

        or die ("Can't execute query.");



$row = mysql_fetch_array($result);



switch($row['level']) {

     case 0:

             Header('Location: admin.php'); break;

     case 1:

             Header('Location: moderator.php'); break;

     case 2:

             Header('Location: user.php'); break;

}



...


Chyba o coś takiego Ci chodziło?
Go to the top of the page
+Quote Post
rafkam
post 13.10.2002, 20:35:37
Post #3





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 24.06.2002

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


Cytat
Chyba o coś takiego Ci chodziło?


Tak oto dzięki.
Mam jescze pytanie - jak to jest skonstruowane np: w poczcie jakiegos portalu gdzy podający login i haslo ma swoj profil - a nie jak to ja sobie wymyslilem level. Czy to ą sesje. Jakby to wyglądało w moim skrypcie ?
Go to the top of the page
+Quote Post
BzikOS
post 14.10.2002, 09:20:38
Post #4





Grupa: Przyjaciele php.pl
Postów: 660
Pomógł: 0
Dołączył: 28.08.2002
Skąd: Starachowice

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


Cytat
Mam jescze pytanie - jak to jest skonstruowane np: w poczcie jakiegos portalu gdzy podający login i haslo ma swoj profil - a nie jak to ja sobie wymyslilem level. Czy to ą sesje. Jakby to wyglądało w moim skrypcie ?


Po prostu musisz poszerzyć swoją tabelę użytkowników o ustawienia jakie chcesz aby były zapisywane dla konkretnych userów, np. imie, nazwisko, adres, miasto, wiek, czy powiadamiac o zmianach na stronie, schemat, sygnatura... no po prostu indywidualne dane dla każdego użytkownika.

A sesje są po to, aby klient nie musiał się logować na każdej podstronie, więc jak najbardziej wskazane jest ich użycie smile.gif
Go to the top of the page
+Quote Post
rafkam
post 14.10.2002, 09:49:28
Post #5





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 24.06.2002

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


Cytat
Po prostu musisz poszerzyć swoją tabelę użytkowników o ustawienia jakie chcesz aby były zapisywane dla konkretnych userów, np. imie, nazwisko, adres, miasto, wiek, czy powiadamiac o zmianach na stronie, schemat, sygnatura... no po prostu indywidualne dane dla każdego użytkownika.  

A sesje są po to, aby klient nie musiał się logować na każdej podstronie, więc jak najbardziej wskazane jest ich użycie  :)

Tak myślałem.
Jęsli możesz to odpowiedz jak to się będzie miało do tego mojego skryptu. Jak wyglada ten mechanizm ktory poroenuje pozostale dane i wywala odpowiednie dla uzytkownika.

Z gory dzieki
Go to the top of the page
+Quote Post
BzikOS
post 14.10.2002, 11:42:54
Post #6





Grupa: Przyjaciele php.pl
Postów: 660
Pomógł: 0
Dołączył: 28.08.2002
Skąd: Starachowice

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


Kod
<?

#plik login.php



session_start()

if ((!$username) || (!$password)) {

   header("Location: login.php");

   exit;

}



$db_name = "test";

$table_name = "logowanie";



$connection = @mysql_connect("localhost", "", "")

   or die("Couldn't connect.");



$db = mysql_select_db($db_name, $connection)

   or die("Couldn't select database.");



$sql = "SELECT * FROM $table_name

   WHERE username = "$username" AND password = password("$password")";



$result = mysql_query($sql) or die ("Can't execute query.");

if(mysql_num_rows($result) > 0) {

   $HTTP_SESSION_VARS['logeduser'] = $username;

   Header('Location: userinfo.php');

} else

   print('Logowanie nie powiodlo się');

?>





<?

#plik userinfo.php



$db_name = "test";

$table_name = "logowanie";



$connection = @mysql_connect("localhost", "", "")

   or die("Couldn't connect.");



$db = mysql_select_db($db_name, $connection)

   or die("Couldn't select database.");



$sql = "SELECT * FROM $table_name WHERE username = ""

          . $HTTP_SESSION_VARS['logeduser'] . """;



$result = mysql_query($sql) or die ("Can't execute query.");

$row = mysql_fetch_array($result);



print('Imie: ' . $row['imie'] . '<br>');

print('Nazwisko: ' . $row['nazwisko'] . '<br>');

print('itd...: ' . $row['itd'] . '<br>');

?>

To jest zarys idei, musisz jeszcze dostosować to do własnych potrzeb, utworzyć skrypt pozwalający klientowi zmieniać swoje dane/ustawienia, no i poczytaj o sesjach :wink:
Go to the top of the page
+Quote Post
rafkam
post 15.10.2002, 09:11:22
Post #7





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 24.06.2002

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


Cytat
<?
#plik userinfo.php

$db_name = "test";  
$table_name = "logowanie";  

$connection = @mysql_connect("localhost", "", "")  
  or die("Couldn't connect.");  

$db = mysql_select_db($db_name, $connection)  
  or die("Couldn't select database.");  

$sql = "SELECT * FROM $table_name WHERE username = ""
         . $HTTP_SESSION_VARS['logeduser'] . """;

$result = mysql_query($sql) or die ("Can't execute query.");  
$row = mysql_fetch_array($result);

print('Imie: ' . $row['imie'] . '<br>');
print('Nazwisko: ' . $row['nazwisko'] . '<br>');
print('itd...: ' . $row['itd'] . '<br>');
?>[/code]
To jest zarys idei, musisz jeszcze dostosować to do własnych potrzeb, utworzyć skrypt pozwalający klientowi zmieniać swoje dane/ustawienia, no i poczytaj o sesjach  :wink:


Czyli ten kod z pliku userinfo.php moge umiesczac w plikach do których chce aby klient mial dostęp? Np: includem?
Go to the top of the page
+Quote Post
BzikOS
post 15.10.2002, 11:00:34
Post #8





Grupa: Przyjaciele php.pl
Postów: 660
Pomógł: 0
Dołączył: 28.08.2002
Skąd: Starachowice

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


Cytat
Czyli ten kod z pliku userinfo.php moge umiesczac w plikach do których chce aby klient mial dostęp? Np: includem?

Tzn. nie tak żywcem, jeśli ma być on dołączany przy pomocy include() to trzeba się upewnić w skrypcie wywołującym, czy user się zalogował i dopiero wtedy dołączać.
Przydałoby się też zabezpieczenie, przed wywołaniem tego skryptu bezpośrednio np. na poczatku userinfo.php umieścić coś takiego:

Kod
<?

if(ereg("userinfo.php", $PHP_SELF))

   Header('Location: ./');
Go to the top of the page
+Quote Post
rafkam
post 15.10.2002, 17:12:19
Post #9





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 24.06.2002

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


Cytat
Tzn. nie tak żywcem, jeśli ma być on dołączany przy pomocy include() to trzeba się upewnić w skrypcie wywołującym, czy user się zalogował i dopiero wtedy dołączać.
Przydałoby się też zabezpieczenie, przed wywołaniem tego skryptu bezpośrednio np. na poczatku userinfo.php umieścić coś takiego:

Kod
<?

if(ereg("userinfo.php", $PHP_SELF))

   Header('Location: ./');


Ok to zrozumialem, ale rowniez chodzilo mi o to czy jak juz sie user zaloguje i juz bedzie na stronie userinfo.php gdzie np znajduje sie link do jakies innej podstronki np: adresy.php - to co w tym przypadku powinnienem umiescic na poczatku w adresy.php. , aby tylko on mial do niej dostep. Jakiś includzik? - czy tu trzeba uzyc sesji wtedy?

Sorry ze tak moce, ale obiecuje ze to juz ostatni post w tej materii.
Dzieki za cierpliwosc
Go to the top of the page
+Quote Post
BzikOS
post 16.10.2002, 10:50:21
Post #10





Grupa: Przyjaciele php.pl
Postów: 660
Pomógł: 0
Dołączył: 28.08.2002
Skąd: Starachowice

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


Kod
<? #adresy.php

if(empty($HTTP_SESSION_VARS['logeduser'] == True)

   Header('Location: login.php');



...

Ot i całą filozofia.
A jeszcze lepiej byłoby zrobić osobny plik z często wykorzystywanymi funkcjami i tam umieścić funkcję np. checklogin() robiącą to co wyżej napisałem, a wtedy na początku każdego pliku w którym potrzebna jest autoryzacja wpisywać:
Kod
<?

include('funkcje.php');

checklogin();



...

?>
Go to the top of the page
+Quote Post
rafkam
post 16.10.2002, 11:03:55
Post #11





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 24.06.2002

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


Cytat
Kod
<? #adresy.php

if(empty($HTTP_SESSION_VARS['logeduser'] == True)

   Header('Location: login.php');



...

Ot i całą filozofia.
A jeszcze lepiej byłoby zrobić osobny plik z często wykorzystywanymi funkcjami i tam umieścić funkcję np. checklogin() robiącą to co wyżej napisałem, a wtedy na początku każdego pliku w którym potrzebna jest autoryzacja wpisywać:
Kod
<?

include('funkcje.php');

checklogin();



...

?>


Dzięki jescze raz za wszystko.
Go to the top of the page
+Quote Post
BzikOS
post 16.10.2002, 14:09:35
Post #12





Grupa: Przyjaciele php.pl
Postów: 660
Pomógł: 0
Dołączył: 28.08.2002
Skąd: Starachowice

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


No problem smile.gif
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: 10.06.2024 - 02:35