Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: PHP MySQL SESJE LOGOWANIE
Forum PHP.pl > Forum > Przedszkole
Mlodycompany
Elo. Mam skrypcik logowania:
  1. <?php
  2. function zaloguj($login, $pass){
  3. $md5 = md5($pass);
  4. $baza = mysql_query("SELECT * FROM `users` WHERE `login` = '".$login."' AND `haslo` = '".$md5."'");
  5. if($baza){
  6. $dane = mysql_fetch_array($baza);
  7. if($login == $dane[2] && $md5 == $dane[3]){
  8.  $_SESSION['zalogowany'] = true;
  9.  $_SESSION['id'] = $dane[0];
  10. $_SESSION['login'] = $dane[2];
  11. $_SESSION['poziom'] = $dane[1];
  12. $_SESSION['mail'] = $dane[4];
  13. $_SESSION['strona'] = $dane[5];
  14. $_SESSION['wiek'] = $dane[6];
  15. $_SESSION['miasto'] = $dane[7];
  16. $_SESSION['gg'] = $dane[8];
  17. $_SESSION['tlen'] = $dane[9];
  18. $_SESSION['plec'] = $dane[10];
  19. $_SESSION['avatar'] = $dane[11];
  20. $_SESSION['grupa'] = $dane[12];
  21. header("Location: index.php");
  22. }
  23. }
  24. }
  25. $post_login = $_POST['login'];
  26. $post_haslo = $_POST['pass'];
  27. if(isset($post_login) && isset($post_haslo)){
  28. zaloguj($post_login,$post_haslo);
  29.  
  30. }
  31.  
  32.  
  33. $get_action = addslashes($_GET['action']);
  34.  
  35.  
  36.  
  37. if($get_action == "logout"){
  38. header("Location: index.php");
  39. }
  40. ?>

i skrypcik wyswietlajacy menu dla poszczegolnych rang:
  1. <table border="0" width="100%" cellpadding="0" cellspacing="0">
  2. <tr>
  3. <th class="cat">Menu</th>
  4. </tr>
  5. <tr><td valign="top" width="200">
  6.  
  7.  
  8. <?php
  9.  
  10. if ($_SESSION['zalogowany']==true) {
  11. if($_SESSION['poziom'] == "1"){
  12. <tr><td class=""><a href="'.$PHP_SELF.'?'.$get.'=modules/main">Panel Usera</a></td></tr>
  13. <tr><td class=""><a href="'.$PHP_SELF.'?'.$get.'=modules/panel">Profil</a></td></tr>
  14. <tr><td class=""><a href="inbox.php">Poczta</a></td></tr>
  15. <tr><td class=""><a href="'.$PHP_SELF.'?action=logout">Wyloguj</a></td></tr>
  16. ';
  17. }
  18. if($_SESSION['poziom'] == "2"){
  19. <tr><td class=""><a href="modules/panelmoderatora.php">Panel Moderatora</a></td></tr>
  20. <tr><td class=""><a href="inbox.php">Poczta</a></td></tr>
  21. <tr><td class=""><a href="'.$_PHP_SELF.'?'.$get.'=modules/dodajfilm">Dodaj Film</a></td></tr>
  22. <tr><td class=""><a href="'.$PHP_SELF.'?'.$get.'=dodane">Filmy Dodane</a></td></tr>
  23. <tr><td class=""><a href="'.$PHP_SELF.'?'.$get.'=modules/panel">Profil</a></td></tr>
  24. <tr><td class=""><a href="'.$PHP_SELF.'?action=logout">Wyloguj</a></td></tr>
  25. ';
  26. }
  27. if($_SESSION['poziom'] == "3"){
  28. <tr><td class=""><a href="modules/paneladmina.php">Panel Admina</a></td></tr>
  29. <tr><td class=""><a href="inbox.php">Poczta</a></td></tr>
  30. <tr><td class=""><a href="'.$PHP_SELF.'?'.$get.'=dodane">Filmy Dodane</a></td></tr>
  31. <tr><td class=""><a href="'.$PHP_SELF.'?action=logout">Wyloguj</a></td></tr>
  32. ';
  33. }
  34. }
  35.  else {
  36.  
  37. <form action=index.php method=post>
  38. <table>
  39. <tr>
  40. <th>Login:</th>
  41. </tr>
  42. <tr>
  43. <th><input type="text" name="login" class="form2"/></th>
  44. </tr>
  45. <tr>
  46. <th>Hasło</th>
  47. </tr>
  48. <tr>
  49. <th><input type="password" name="pass" class="form2"/></th>
  50. </tr>
  51. <tr>
  52. <th colspan="2">
  53. <input type="submit" value="zaloguj" class="form2"/></th>
  54. </tr>
  55. </table>
  56. </form>
  57. <a href="index.php?pokaz=modules/rejestracja">ZAREJESTRUJ SIĘ!</a>
  58. ');
  59.  
  60. }
  61.  
  62. ?>
  63.  
  64. </td>
  65.  
  66.  
  67.  
  68. <tr>
  69. </table>

I teraz zagadka tongue.gif.
Mój poziom to 3 bo jestem adminem, a menu mi wyswietla z poziomu 1 czyli zwyklego usera. Jak zrobic by wyswietlalo poprawnie menu??
Petermechanic
a może złe dane spidsujesz z tablicy mysql_fetch_array?
Mlodycompany
dobre dane zpisuje
marcio
Zaraz luikne do kodu a nie mozesz uzyc indexow nie numerycznych??Bedzie latwiej
Mlodycompany
napisze jakie sa komurki w tabeli:
ID | poziom | login | haslo | mail | strona | wiek | miasto | gg | tlen | plec | avatar | grupa
Petermechanic
$_SESSION['poziom'] = $dane[1]

zamień na

$_SESSION['poziom'] = $dane['poziom']
Mlodycompany
nie pomoglo
marcio
  1. <?php
  2. if($_SESSION['poziom'] == "1"){
  3. ?>

Moze poziom w bazie masz typu int???Nie wiem kod tylko tak na szybko spradzalem
Mlodycompany
w bazie mam tinyint ustawione. wezme na varchar i zobaczy czy zatrybi biggrin.gif
isso
Po pierwsze sprawdź co zwraca zmienna
  1. <?php
  2. $_SESSION['poziom']
  3. ?>
jeżeli zwraca 3
to może spróbuj pościągać apostrofy z liczb...
  1. <?php
  2. if($_SESSION['poziom'] == "1")...
  3. ?>
Mlodycompany
teraz to wogole zrabalem sprawe. jak sie loguje to nie mam menu. dopiero jak wejde na inna podstrone z ta sama sesja rozpoczetam i wroce na index to dopiero mam menu, ale nadal dla usera a nie dla admina
marcio
Pokaz caly ten plik bo widze ze to tylko polowa
isso
Ale dalej nie wiadomo, co Ci zwraca zmienna
  1. <?php
  2. $_SESSION['poziom']
  3. ?>
Jak zobaczysz co ona Ci zwraca to będziesz wiedział o co chodzi... przejżyj Sesje, może tam coś jest skopane...
Mlodycompany
Działa. Zamiast do poziomu mialem do hasla tongue.gif Thx panowie
marcio
No widzisz a potem sie sprzeczasz ze masz wszystko dobrze jak ci ktos mowi zebys to zrobil za pomoca indexow nie cyfrowych to posluchaj smile.gif
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.