Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Widoczne dla zalogowanego i z polem admin = 1
adek-
post
Post #1





Grupa: Zarejestrowani
Postów: 124
Pomógł: 2
Dołączył: 19.04.2007
Skąd: Częstochowa

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


Witam, mam system logowania, gdzie w bazie dorobiłem sobie pole admin = tinyint 1/0 i teraz robię sobie wyświetlanie pewnych elementów menu dla zalogowanych użytkowników z admin = 1 i mam takie coś

Na początku includuję bazę i pobieram wartość mnie interesującą czyli admin
  1. include('inc/config.inc.php'); //dane $rej_tabela i inne wazne opcje
  2. include 'inc/db.php'; // połączenie się z bazą danych
  3. $tabela = $rej_tabela; // zdefiniowanie tabeli MySQL z której ma pobierać
  4.  
  5. $wynik = mysql_query("SELECT * FROM $tabela WHERE admin=1");
  6. // pobieram wszystkie pola z polem admin ustawionym na 1

i teraz kod odpowiedzialny za weryfikację gdzie korzystam z "czy zalogowany" i "czy admin=1"
  1. <?php if (!isset($_SESSION['login']) && (mysql_num_rows($wynik) == 1)) { echo ''; } else {?>
  2. <li><a href="admin.php">ADMIN</a></li>
  3. <?php } ?>

nie wiem, czy dokładnie dobrze sobie to obmyśliłem. Bo inni użytkownicy bez admin=1 widzą to pole w menu ;/
Przypuszczalnie źle sobie warunek wypisałem, czy też pole "admin" w mysql może być zarezerwowane i nie widzi?

Ten post edytował adek- 24.10.2011, 14:07:32
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
adek-
post
Post #2





Grupa: Zarejestrowani
Postów: 124
Pomógł: 2
Dołączył: 19.04.2007
Skąd: Częstochowa

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


W zasadzie fakt admin też jest userem (IMG:style_emoticons/default/smile.gif) Mam id każdego użytkownika jako autoincrement jeśli o to Ci chodzi, tylko nie wiem jak miał bym identyfikować go po ID? wyciągać dane usera i jego id i jako zmienną dawać samo id zamaist jego nazwy, czy loginu? I jeszcze mam pytanie bo nie wiem, czy dobrze Cię zrozumiałem. I chyba nie wiem dokładnie co masz na myśli mówiąc o wielu zmiennych sesyjnych.
Ja sobie zrobiłem tak:
  1. $login = $_POST["login"];
  2. $haslo = $_POST["haslo"];
  3. $haslo = md5($haslo); // szyfrowanie podanego hasła
  4.  
  5. // logowanie usera - jeżeli wszystko jest dobrze, użytkownik się loguje
  6. $wynik=mysql_query("SELECT * FROM $tabela WHERE
  7. login='$login' and haslo='$haslo' and status=1");
  8.  
  9. if (mysql_num_rows($wynik) == 1) {
  10. $informacja = mysql_fetch_array($wynik);
  11. $_SESSION["login"] = $informacja["login"];
  12. header('Location: index.php ');
  13. } else {
  14. echo '<span class="blad">Zostały wprowadzone nieprawidłowe dane!</span>';
  15. }
  16.  
  17. // logowanie admina
  18. $wynik=mysql_query("SELECT * FROM $tabela WHERE
  19. login='$login' and haslo='$haslo' and status=1 and admin=1"); //## tutaj dodałem atrybut admin 1 więc loguje jako admin
  20.  
  21. if (mysql_num_rows($wynik) == 1) {
  22. $informacja = mysql_fetch_array($wynik);
  23. $_SESSION["admin"] = $informacja["admin"];
  24. header('Location: index.php ');
  25. } else {
  26. echo '<span class="blad">Zostały wprowadzone nieprawidłowe dane!</span>';
  27. }
  28.  
  29. mysql_close($polaczenie);

CHodzi Ci dokładnie o to, że można to zrobić w jednym zapytaniu, zamiast rozbijać na dwa? Czyli najpierw bym musiał jeszcze zrobić if mysql query addmin-1 i admin-0 ?
Bo w zasadzie chyba teraz jak loguję się jako sesja "admin" to też mi się loguje jako wywołanie sesji "login", tak? Bo mi wyświetla 2 przyciski wyloguj dla admin i dla login...

Ten post edytował adek- 25.10.2011, 20:39:02
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.09.2025 - 18:57