Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Menu aktywne
kubagogo
post
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 13.10.2010

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


Witam,
mam taki problem

w swoim portalu mam dwa typy użytkowników administratora i zwykłego usera. W tabeli z ich danymi stworzyłem kolumne o nazwie status w której adminom przypisuje 1 a userom 2. I teraz moje pytanie jak najlatwiej zrobić, żeby po zalogowaniu się admina pojawiało sie menu przeznaczone dla niego, inne dla usera.

  1. <div id="menu"
  2. <ul>
  3. <li><a href="index.php">Start</a></li>
  4. <li><a href="logowanie.php">Zalaoguj</a></li>
  5. <li><a href="kontakt.php">Kontakt</a></li>
  6.  
  7. //tutaj menu admina
  8. <li><a href="rejstracja.php">Dodaj użytkownika</a></li>
  9. <li><a href="konfiguracja.php">Konfiguracja</a></li>
  10. <li><a href="kontakt.php">Kontakt</a></li>
  11. <li><a href="wyloguj.php">Wyloguj</a><li>
  12.  
  13. //tutaj menu usera
  14. <li><a href="statystyki.php">Statystyki</a></li>
  15. <li><a href="kontakt.php">Kontakt</a></li>
  16. <li><a href="wyloguj.php">Wyloguj</a><li>
  17.  
  18. </ul>
  19. </div><!--menu-->


Pierwsza sprawa to jak rozwiązać połączenie php z html. Myślałem o jakimś case dla 2 przypadków albo poprostu if dla jednego lub drugiego.
I jak po zalogowaniu pamiętać status użytkownika jakieś zapytanie do bazy zrobic?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
john_doe
post
Post #2





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

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


stwórz sobie dwie funkcje wypisujące menu.
menuAdmin();
menuUser();

potem np.

if(status == 1)
{ echo menuAdmin();} else echo menuUser();

Go to the top of the page
+Quote Post
kubagogo
post
Post #3





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 13.10.2010

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


ok zrobiłem tak jak napisałeś i menu się tworzy, ale w dalszym ciągu mam pytania

Na początku to co napisał john zmieniłem nieco ponieważ zawsze występował by warunek else dla niezalogowanego użytkownika dlatego cos takiego napisałem
  1. if($status==1)
  2. echo menu_admin();
  3. else
  4. if($status==2)
  5. echo menu_user();


Myślę, że powinno to tak działać.

A teraz najważniejsze jak się dobrać do tego statusu kiedy użytkownik jest zalogowany?
jakieś zapytanie do bazy? a może jakoś inaczej?

Czy dobrze robię mieszając php z html w taki sposób jak w skrypcie poniżej?


  1. function menu_pionowe_html()
  2. {
  3. ?>
  4. <div id="glowna">
  5. <div id="menu_pionowe_pojemnik">
  6. <div id="menu"
  7. <ul>
  8. <li><a href="index.php">Start</a></li>
  9. <li><a href="logowanie.php">Zalaoguj</a></li>
  10. <li><a href="kontakt.php">Kontakt</a></li>
  11. <?php
  12. if($status==1)
  13. echo menu_admin();
  14. else
  15. if($status==2)
  16. echo menu_user();
  17.  
  18. ?>
  19. </ul>
  20. </div><!--menu-->
  21. <div id="menu_dol">
  22.  
  23. </div><!--menu_dol-->
  24. </div><!--menu_pionowe_pojemnik-->
  25. <div id="tresc">
  26. <?php
  27. }
  28. function menu_admin()
  29. {
  30. ?>
  31. <li><a href="rejstracja.php">Dodaj użytkownika</a></li>
  32. <li><a href="konfiguracja.php">Konfiguracja</a></li>
  33. <li><a href="kontakt.php">Kontakt</a></li>
  34. <li><a href="wyloguj.php">Wyloguj</a><li>
  35.  
  36. <?php
  37. }
  38. function menu_user()
  39. {
  40. ?>
  41. <li><a href="statystyki.php">Statystyki</a></li>
  42. <li><a href="kontakt.php">Kontakt</a></li>
  43. <li><a href="wyloguj.php">Wyloguj</a><li>
  44.  
  45. <?php
  46. }


Ten post edytował kubagogo 7.11.2010, 15:58:11
Go to the top of the page
+Quote Post
naitsabes
post
Post #4





Grupa: Zarejestrowani
Postów: 65
Pomógł: 5
Dołączył: 10.09.2010

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


else
if($status==2)

else znaczy ze $status nie rowna sie 1 wiec nie musisz tego if'a dawac
Go to the top of the page
+Quote Post
kubagogo
post
Post #5





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 13.10.2010

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


Cytat
else
if($status==2)

else znaczy ze $status nie rowna sie 1 wiec nie musisz tego if'a dawac


No dobrze, ale co kiedy żaden użytkownik nie jest zalogowany? Wtedy jak zrobie tak jak napisałeś to za kazdym razem jak nie bedzie to admin to będzie się pojawiało menu dla usera.

Jednak w dalszym ciągu nie wiem jak zrobić to sprawdzenie statusu

Pomyślałem o czymś takim

  1. $polaczenie=polacz_bd();
  2. $wynik=$polaczenie->query("select status from uzytkownik where nazwa_uzytkownika='$_SESSION'");
  3. if($wynik==1)
  4. echo menu_admin();
  5. else
  6. if($wynik==2)
  7. echo menu_user();


tylko, że nie działa to tak jak bym chciał nie wiem co dać w klauzuli where bo chciałbym, żeby tam pojawiała się nazwa zalogowanego użytkownika. Może ktoś ma jakiś pomysł jak sie do tego dobrać
Myślałem , że może przez Session ale nic z tego

Czekam na jakieś pomysły
Go to the top of the page
+Quote Post
ciekawskiii
post
Post #6





Grupa: Zarejestrowani
Postów: 467
Pomógł: 39
Dołączył: 7.11.2010
Skąd: Raz tu, raz tam

Ostrzeżenie: (30%)
XX---


  1. if($wynik[0]==1)
  2. echo menu_admin();
  3. else if($wynik[0]==2)
  4. echo menu_user();
Go to the top of the page
+Quote Post
kubagogo
post
Post #7





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 13.10.2010

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


wracam do detamu bo dajel mam problem z tym menu

Zrobiłem coś takiego

  1. $polaczenie=polacz_bd();
  2. $wynik1=$polaczenie->query("select status from uzytkownik where nazwa_uzytkownika='kuba'");
  3. if(!$wynik1)
  4. echo 'blad';
  5. else
  6. echo 'dobrze';
  7.  
  8. echo $wynik1;


Jest to tylko pewnien test w którym chciałbym odczytywać z bazy status uzytkownika kuba i w zależności od niego wybieramy menu, ale kiedy napisałem coś takiego pojawił sie błąd niby wsywietla sie opca ifa ze dobrze ale nie wyświetla sie wynik zapytania tylko bład

Catchable fatal error: Object of class mysqli_result could not be converted to string in D:\xampp\xampp\htdocs\projekt\funkcje_wyswietl.php on line 65

Ktoś wie jak się do tego zabrać?
Go to the top of the page
+Quote Post
Ulysess
post
Post #8





Grupa: Zarejestrowani
Postów: 695
Pomógł: 65
Dołączył: 27.07.2009
Skąd: Y

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


musisz np użyć funkcji

  1.  
  2. $w = mysql_fetch_assoc($wynik1);

i wtedy wyświetlić echo $w['nazwa_pola_z_bazy']
Go to the top of the page
+Quote Post
kubagogo
post
Post #9





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 13.10.2010

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


Dzieki wielkie udało mi się to wkońcu zrobić. Działą tak jak chciałem

Jedyna sprawa to to, że u mnie pisałem polecenia do bazy w podejściu obiektowym więc funkcja powinna być taka

  1. $w = $wynik1->fetch_assoc()


Ten post edytował kubagogo 10.11.2010, 20:19:18
Go to the top of the page
+Quote Post

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: 23.08.2025 - 19:26