Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z logowaniem
Forum PHP.pl > Forum > Przedszkole
babejsza
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
cim
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ć
MarcinZ
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..
babejsza
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.
MarcinZ
Jeżli chcesz to podeśle ci mój system logowania oparty na sesjach gdzie dane znajdują się w bazie danych
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.