Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: uwierzytelnianie
Forum PHP.pl > Forum > Przedszkole
kramot
Na początek:
Niemogę poradzić sobie ze stwożeniem funcji uwierzytelniającej i rozrużniającej 3 rodzaje uzytkownikow: admin, obluga, klient.
Staram się to zrobic na obiektach. ponizej przedstawie kod a potem co nieco o nim opowiem:
  1. <?php
  2. function Logowanie($username, $password, $id_uprawnienia)
  3. {
  4. $q = mysql_query (&#092;"select * from wypozyczalnia.uzytkownicy where 
  5. login = '$username' and
  6. haslo = '$password'&#092;"); //zapytanie mysql
  7.  
  8. $il_wiersz = mysql_num_rows ($q); //liczba wierszy
  9.  
  10. if ($il_wiersz > 0) //jeśli > 0 to zalogowany i .....
  11. {
  12. $wiersz = mysql_fetch_array ($q); //tablica
  13.  
  14.  
  15. if($wiersz['id_uprawnienia'] == 3)
  16.  {
  17. $_SESSION['count'] = 3;
  18.  
  19. $id_uprawnienia = 3;  //niedziala :(
  20.  
  21.  echo &#092;"udalo ci się jako administrator\";
  22.  echo &#092;"Witaj, \" .$wiersz['imie'].\" \";
  23.  
  24.  }
  25.  elseif($wiersz['id_uprawnienia'] == 2)
  26.  {
  27. $_SESSION['count'] = 2;
  28.  
  29. $id_uprawnienia = 2; //nie dziala :(
  30.  
  31.  echo &#092;"udalo ci się jako obsluga\";
  32.  echo &#092;"Witaj, \".$wiersz['imie'].\"\";
  33.  }
  34. elseif ($wiersz['id_uprawnienia'] == 1)
  35. {
  36. $_SESSION['count'] = 1;
  37.  
  38. $id_uprawnienia = 1; //nie dziala :(
  39.  
  40. echo &#092;"udalo ci się jako klientowi\";
  41.  echo &#092;"Witaj, \" .$wiersz['imie'].\" \";
  42.  }
  43.  else
  44.  {
  45.  return 0;
  46.  }
  47. }
  48. else 
  49. {
  50. return 0;
  51. }
  52.  
  53. }
  54. ?>

powyzej funcja odpowiedzialna za zalogowanie uzytkownikow - dziala bez zarzutu oprocz miejssc oznaczonym (a te niedzialaj dopiero przy wspolpracy z funcja Wyswietl):

  1. <?php
  2. function Wyswietl()
  3. {
  4. echo &#092;"<html>n<head>\";
  5. $this->WyswietlTytul();
  6. $this->WyswietlStyle();
  7. echo &#092;"</head>n<body>n\";
  8. //echo \"uprawnienie nr: \" .$id_uprawnienia. \"\";
  9. if (isset($_SESSION['count']) and ($id_uprawnienia = 3)) //oczywiscie tu jest blad - tylko jak to zrealizowac??!!
  10. {
  11.  
  12. $this->WyswietlNaglowek();
  13. $this->WyswietlMenu($this->przyciski);
  14. $this->Zawartosc1();
  15. $this->WyswietlStopke();
  16. // echo \"zalogowany jako\" .$id_uprawnienia.\"\";
  17. echo &#092;"</body>n</html>n\";
  18. }
  19. else
  20. {
  21. $this->WyswietlNaglowek();
  22.  $this->WyswietlMenu($this->przyciski);
  23.  $this->NieZalogowany();
  24.  $this->WyswietlStopke();
  25.  echo &#092;"</body>n</html>n\";
  26. }
  27.  
  28.  
  29. }
  30. ?>


Jak sie domyslacie niewiele z tego dziala. Dziala to ze uzytkownicy sie loguja i na dodatek $wiersz['id_uprawnienia'] zwraca to co nalezy ale juz jesli chcialbym uzaleznic to co jest wyswietlone na stronie to dupa. wiem ze wiaze sie to z przekazaniem zmiennych (chyba) ale nie wiem jak to zrealizowac. Probowalem juz rozgrysc to od strony zasiegu zmiennych itd....
Jesli ktos ma jakies pomysly - a jest tak napewno - to bardzo prosilbym o jakies wskazowki.

Zdaje sobie sprawe ze niezbyt czytelnie opisalem problem ale licze na wasz spryt biggrin.gif
kramot
To może macie chociaż jakieś sensowne żródło gdzie mógłbym poszukać odpowiedzi?questionmark.gif
Pozdrawiam.
scanner
Ale masz namieszane w kodzie facet...
Zacnzij od tego, zę wywal wszystkie "session_start" title="Zobacz w manualu PHP" target="_manualy() i daj jeden na samym pocżatku pliku.
A tuż przed nim daj error_reporting" title="Zobacz w manualu PHP" target="_manual( E_ALL );

Pozatym upewnij się (np. var_dump" title="Zobacz w manualu PHP" target="_manual() ) co dostajesz z zapytania.
crash
Masz błąd w tym warunku... Sam wskazałeś, to czemu nie poprawisz? Ma być:
  1. <?php
  2. $id_uprawnienia == 3
  3. ?>

A pozatym to chyba wypadałoby jakos przekazać wartość $id_uprawnienia do tej funkcji Wyswietl().
kramot
No właśnie chciałbym dowiedzieć się od was jak to zrobić.
Bo jak juz bede mial $id_uprawnienia w funkcji Wyswietl to powinno pujsc latwiej.
Pozdrawiam biggrin.gif

PS: o wynik zapytania wogole sie niemartwie - jestem pewny ze dostaje to co chce biggrin.gif
scanner
RTFM: http://pl.php.net/manual/pl/functions.arguments.php na ten przykład.
Operujesz na obiektach, ale z tego co widże, to tylko worki na fukcje, wiec ten temat przemilczę i pozostane przy funkcjach.
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.