Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z logowaniem
babejsza
post 9.08.2004, 15:42:01
Post #1





Grupa: Zarejestrowani
Postów: 407
Pomógł: 1
Dołączył: 4.03.2003
Skąd: warszawa

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


Witam,

Mam taki oto kodzik:

  1. <?
  2.  
  3. #definicje stalych
  4. define(&#092;"DATA\", \"users.dat\");
  5. define(&#092;"SESID\", SESSION_NAME() . \"=\" . SESSION_ID());
  6.  
  7. # zaloguj user-a
  8. function login($login, $passwd)
  9. {
  10. $line = file(DATA);
  11. foreach($line as $temp)
  12. {
  13. $str = explode(&#092;",\", $temp);
  14. if(chop($str[0])==$login && chop($str[1])==$passwd)
  15. { 
  16. $_SESSION[&#092;"USER_AUTH\"] = True;
  17. $_SESSION[&#092;"USER_LOGIN\"] = $_POST[\"login\"];
  18. return True;
  19. }
  20. }
  21. $login = htmlentities($login);
  22. return False;
  23. }
  24.  
  25.  
  26. # wyloguj user-a
  27. function logout()
  28. {
  29. $_SESSION[&#092;"USER_AUTH\"] = False;
  30. $_SESSION[&#092;"USER_LOGIN\"] = Null;
  31. }
  32.  
  33.  
  34. # czy użytkownik istnieje
  35. function user_exists($login)
  36. {
  37. $line = file(DATA);
  38. foreach($line as $temp)
  39. {
  40. $str = explode(&#092;",\", $temp);
  41. if(chop($str[0])==$login) return True;
  42. }
  43. return False;
  44. }
  45.  
  46.  
  47. # dodaje nowego użytkownika
  48. function add_user($login, $passwd, $email)
  49. {
  50. $files = fopen(DATA, &#092;"a\");
  51. flock($files, 2);
  52. fputs($files, $login . &#092;",\" . $passwd . \",\" . $email . \"n\");
  53. flock($files, 3);
  54. fclose($files);
  55. }
  56.  
  57.  
  58. # sprawdza czy zalogowany
  59. function auth()
  60. {
  61. return ($_SESSION[&#092;"USER_AUTH\"] == True);
  62. }
  63.  
  64.  
  65.  
  66. ?>


Teraz problem:
Wszystko dziala. Tylko za cholere nie moge zdefiniowac logowania tak zeby byla mozliwosc logowanie sie na dwuch poziomach tzn. zebym mial np. super user-ow i normal user-ow.

Probuje z tym cos zrobic caly dzien i mi nie idzie sad.gif .
Robie sobie stronke ze zdjeciami z wakcji itp., i w zwiazku z tym chcialbym moc robic rozne grupy userow.

Ehhh niech ktos mnie olsni bo mam calkowite zacmienie smile.gif

Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
cim
post 9.08.2004, 21:41:06
Post #2





Grupa: Zarejestrowani
Postów: 208
Pomógł: 28
Dołączył: 9.08.2004
Skąd: Stargard

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


może pomogłoby coś takiego:
ID grupy czyli użytkownicy należący do grupy uprzywilejowanej mieli by jakąś tam liczbe, a normalni inną liczbe... każdemu użytkownikowi dorzuciłoby się za loginem i hasłem (czy już za e-mailem) właśnie id grupy do której należy i przekazywałoby się je poprzez sesje... a wyświetlanie czegokolwiek trzeba byłoby napisać na if`ach sprawdających id grupy do której należy user i pokazujących to co temu userowi pokazać można... wybitne to, to nie jest ani super bezpieczne (jednak dla zdjęć z wakacji chyba wystarczy), ale teoretyczne powinno działać


--------------------
errare humanum est
Go to the top of the page
+Quote Post
MarcinZ
post 10.08.2004, 11:03:08
Post #3





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 18.03.2004
Skąd: Golub-Dobrzyń

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


A więc tak powienieneś dodać w zmiennej $_SESSION dodatkową zmienną, z której to będzie brana wartoś rozpoznawana czy dany użytkownik jest adminem czy też nie... kod powinnie nyglądać tak...

Kod
zaloguj user-a
function login($login, $passwd)
{
  $line = file(DATA);
  foreach($line as $temp)
  {
    $str = explode(",", $temp);
    if(chop($str[0])==$login && chop($str[1])==$passwd)
    {
      $_SESSION["USER_AUTH"]  = True;
      $_SESSION["USER_LOGIN"] = $_POST["login"];
      $_SESSION["USER_ACCESS"] = $_POST["access"]; /*tylko ta zmienna powinna być wzięta z pliku gdzie sprawdzasz czy dany użytkownik istnieje czy też nie i powinna mieć taką nazwe lub inna zależnie od twego upodobania */
      return True;
    }
  }
  $login = htmlentities($login);
  return False;
}


A jeżeli chodzi o sprawdzenie czy dana osoba ma uprawnienia do danaej strony wystarczy :
Kod
<?php
session_start();
//to co ma byc do rozpoczecia sesji
if(!$_SESSION["USER_ACCESS"] = 1){
echo "brak uprawnień";
}
//gdzie 1 jest to liczba z uprawnieniami zwykłego użytkownika

Jak co to napisz czy zadziałało a jak nie to podeśle cii inny typ sprawdzania logowania..


--------------------
PHP 4.3.11 apache 1.3.31 i wszystko
Go to the top of the page
+Quote Post
babejsza
post 11.08.2004, 15:38:55
Post #4





Grupa: Zarejestrowani
Postów: 407
Pomógł: 1
Dołączył: 4.03.2003
Skąd: warszawa

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


dzieki wielkie za odpowiedzi smile.gif

MarcinZ jest chyba blizej, ale caly czas jakos nie jestem wstanie tego podlaczyc sad.gif.

Taka juz d..a ze mnie. Dopiero poznaje sesje i to chyba dla tego smile.gif

Jezeli bylbys mi jeszcze sklonny pomoc to bede wdzieczny smile.gif

Pozdr.
Go to the top of the page
+Quote Post
MarcinZ
post 11.08.2004, 16:11:21
Post #5





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 18.03.2004
Skąd: Golub-Dobrzyń

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


Jeżli chcesz to podeśle ci mój system logowania oparty na sesjach gdzie dane znajdują się w bazie danych


--------------------
PHP 4.3.11 apache 1.3.31 i wszystko
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 - 10:14