Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Podział użytkowników portalu - cz.II
Forum PHP.pl > Forum > Przedszkole
andrzejlechniak
Pisałem już dzisiaj na forum o skrypcie podziału na użytkowników. I TO działa. Inny pojawił się problem. Kiedy zaloguję się jako admin, mam parę linków. Dodaję wiadomości, kategorie itd. I mam link do strony głównej. I gdy tam kliknę - przechodzę na pustą - ZUPEŁNIE pustą stronę. Nawet nie wiem jako kto jestem zalogowany. Przedstawiam fragment mojego wadliwego kodu:

  1. if($_GET["wyloguj"] == '1')
  2. {
  3. unset($_SESSION["logged"]);
  4. }
  5.  
  6. if($_SESSION["logged"] != "tak")
  7. {
  8. if (!isset($_POST['myusername']) || $_POST['myusername']=="" || !isset($_POST['mypassword']) || $_POST['mypassword']=="")
  9. {
  10. echo '<form name="form1" action="admin.php?id=konto" method="Post" >
  11. <div class="log_main">
  12. <div class="log_form">&rsaquo; LOGOWANIE DO SERWISU</div>
  13. <div class="log_dane">
  14. <div class="log_form">Użytkownik: <input name="myusername" type="text" id="myusername"></div>
  15. <div class="log_form">Hasło: <input name="mypassword" type="password" id="mypassword"></div>
  16. <div class="log_form">&nbsp;
  17. <input type="submit" name="Submit" value="Zaloguj" title="zaloguj się">
  18. </div>
  19. </div>
  20. </div>
  21. </form>';
  22. }
  23. else
  24. {
  25. $myusername=$_POST['myusername'];
  26. $mypassword=$_POST['mypassword'];
  27.  
  28. //Ochrona przeciw SQl injection
  29. $myusername = stripslashes($myusername);
  30. $mypassword = stripslashes($mypassword);
  31. $myusername = mysql_real_escape_string($myusername);
  32. $mypassword = mysql_real_escape_string($mypassword);
  33.  
  34. $sql="SELECT * FROM xxx WHERE login='$myusername' and password='$mypassword'";
  35.  
  36. $result=mysql_query($sql);
  37. $count=mysql_num_rows($result);
  38. }
  39.  
  40. if($count==1)
  41. {
  42. $_SESSION["logged"] = "tak";
  43. $_SESSION["username"] = $myusername;
  44. }
  45. else
  46. {
  47. return "Błędny login lub hasło";
  48. }
  49. }
  50.  
  51. if($_SESSION["logged"] == "tak")
  52. {
  53. $sql="SELECT * FROM xxx WHERE login='$myusername' and password='$mypassword'";
  54. $result = mysql_query($sql);
  55. while($row = mysql_fetch_assoc($result))
  56. {
  57. $_SESSION['ranga'] = $row['ranga'];
  58. if($_SESSION['ranga']==2)
  59. {
  60. echo 'jesteś administratorem';
  61. echo '<div class="panel_admin_main">
  62. Witaj, jesteś zalogowany jako:
  63. <strong>' .$_SESSION['username']. '</strong> |
  64. <a href="admin.php?id=konto&wyloguj=1">Wyloguj się</a><br />
  65. <ul>
  66. <li><a href="admin.php?id=admin_wydarzenia">Zarządzanie wiadomościami</a></li>
  67. <li><a href="admin.php?id=admin_kategorie">Zarządzanie kategoriami wiadomości</a></li>
  68. </ul>
  69. </div>';
  70. }
  71. elseif($_SESSION['ranga']==1)
  72. {
  73. echo 'Jesteś moderatorem';
  74. }
  75. elseif($_SESSION['ranga']==0)
  76. {
  77. echo 'Jesteś zwykłym użytkownikiem <br />';
  78. }
  79. else
  80. {
  81. echo 'Jakim cudem tu się zalogowałeś?';
  82. }
  83. }
  84. }


Proszę, poradźcie coś smile.gif
daros17
Pokaż plik index.php. W index.php możesz np dać sesje jeśli jest zalogowany to pokazuj to, jeśli nie to pokazuj co innego.
andrzejlechniak
Oto kod do tej strony, co chodzi jak chce - plik. admin.php:

  1. <?php
  2. require_once ('db/db.php');
  3. ?>
  4. <?xml version="1.0" encoding="utf-8"?>
  5. <!Doctype html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3c.org/TR/xhtml1/dtd/xhtml1-transitional.dtd">
  6. <html xmlns="http://w3c.org/1999/xhtml" xml:lang="pl" lang="pl">
  7. <head>
  8. <meta name=Copyright content="Andrzej Lechniak">
  9. <meta name="Copyright" content="Andrzej Lechniak">
  10. <meta name="Language" content="pl">
  11. <link type="text/css" rel="stylesheet" href="style/style.css">
  12. <link type="text/css" rel="stylesheet" href="style/admin.css">
  13. <title>XXX</title>
  14. </head>
  15. <body>
  16. <div class="naglowek_strony">
  17. <p class="tekst_naglowka"></p>
  18. </div>
  19.  
  20. <div class="naglowek_menu">
  21. <p class="menu">
  22. <a target="_blank" href="index2.php?id=home" title="przejdź do strony głównej">PORTAL </a> |
  23. <a href="admin.php?id=statystyki" title="przejdź do strony ze statystykami">STATYSTYKI </a>
  24. <img src="obrazki/pasek_gora.jpg">
  25. </p>
  26. <hr />
  27. </div>
  28.  
  29. <div class="cala_strona">
  30.  
  31. <div class="strona_main">
  32.  
  33. <?php
  34. /////Funkcja wyświetlania strony głównej - LOGOWANIE
  35. function home ()
  36. {
  37. if($_GET["wyloguj"] == '1')
  38. {
  39. unset($_SESSION["logged"]);
  40. }
  41.  
  42. if($_SESSION["logged"] != "tak")
  43. {
  44. if (!isset($_POST['myusername']) || $_POST['myusername']=="" || !isset($_POST['mypassword']) || $_POST['mypassword']=="")
  45. {
  46. echo '<form name="form1" action="admin.php?id=konto" method="Post" >
  47. <div class="log_main">
  48. <div class="log_form">&rsaquo; LOGOWANIE DO SERWISU</div>
  49. <div class="log_dane">
  50. <div class="log_form">Użytkownik: <input name="myusername" type="text" id="myusername"></div>
  51. <div class="log_form">Hasło: <input name="mypassword" type="password" id="mypassword"></div>
  52. <div class="log_form">&nbsp;
  53. <input type="submit" name="Submit" value="Zaloguj" title="zaloguj się">
  54. </div>
  55. </div>
  56. </div>
  57. </form>';
  58. }
  59. else
  60. {
  61. $myusername=$_POST['myusername'];
  62. $mypassword=$_POST['mypassword'];
  63.  
  64. //Ochrona przeciw SQl injection
  65. $myusername = stripslashes($myusername);
  66. $mypassword = stripslashes($mypassword);
  67. $myusername = mysql_real_escape_string($myusername);
  68. $mypassword = mysql_real_escape_string($mypassword);
  69.  
  70. $sql="SELECT * FROM uzytkownicy WHERE login='$myusername' and password='$mypassword'";
  71.  
  72. $result=mysql_query($sql);
  73. $count=mysql_num_rows($result);
  74. }
  75.  
  76. if($count==1)
  77. {
  78. $_SESSION["logged"] = "tak";
  79. $_SESSION["username"] = $myusername;
  80. }
  81. else
  82. {
  83. return "Błędny login lub hasło";
  84. }
  85. }
  86.  
  87. if($_SESSION["logged"] == "tak")
  88. {
  89. $sql="SELECT * FROM uzytkownicy WHERE login='$myusername' and password='$mypassword'";
  90. $result = mysql_query($sql);
  91. while($row = mysql_fetch_assoc($result))
  92. {
  93. $_SESSION['ranga'] = $row['ranga'];
  94. if($_SESSION['ranga']==2)
  95. {
  96. echo 'jesteś administratorem';
  97. echo '<div class="panel_admin_main">
  98. Witaj, jesteś zalogowany jako:
  99. <strong>' .$_SESSION['username']. '</strong> |
  100. <a href="admin.php?id=konto&wyloguj=1" OnClick="return confirm(\'Czy napewno chcesz się wylogować?\');" title="Wyloguj się z serwisu">Wyloguj się</a><br />
  101. <ul>
  102. <li><a href="admin.php?id=admin_wydarzenia" title="Przejdź do panelu zarządzania wiadomościami">Zarządzanie wiadomościami</a></li>
  103. <li><a href="admin.php?id=admin_kategorie_w" title="Przejdź do panelu zarządzania kategoriami wiadomości">Zarządzanie kategoriami wiadomości</a></li>
  104. <li><a href="admin.php?id=admin_produkty" title="Przejdź do panelu zarządzania produktami">Zarządzanie produktami</a></li>
  105. <li><a href="admin.php?id=admin_kategorie_p" title="Przejdź do panelu zarządzania kategoriami produktów">Zarządzanie kategoriami produktów</a></li>
  106. <li><a href="admin.php?id=admin_sprzedaz" title="Przejdź do panelu zarządzania sprzedażą">Zarządzanie sprzedażą</a></li>
  107. </ul>
  108. </div>';
  109. }
  110. elseif($_SESSION['ranga']==1)
  111. {
  112. echo 'Jesteś moderatorem';
  113. }
  114. elseif($_SESSION['ranga']==0)
  115. {
  116. echo 'Jesteś zwykłym użytkownikiem <br />';
  117. }
  118. else
  119. {
  120. echo 'Jakim cudem tu się zalogowałeś?';
  121. }
  122. }
  123. }
  124. }
  125.  
  126. /////////Wyświetlanie strony Statystyki
  127. function statystyki()
  128. {
  129. if($_SESSION['ranga']==0)
  130. {
  131. echo '<div class="panel_admin_main">statystyki</div>';
  132. echo '<a href="?id=home">HOME</a>';
  133. }
  134.  
  135. }
  136.  
  137. ////////Wyświetlanie strony Zarządzanie wiadomościami
  138. function admin_wydarzenia ()
  139. {
  140. echo '<div class="panel_admin_main">
  141. <div class="panel_admin_naglowek1"><img src="obrazki/kontrolka.png" />
  142. Zarządzanie WIADOMOŚCIAMI |
  143. <a href="admin.php?id=home" title="przejdź do głównego panelu zarządzania">Panel główny</a> |
  144. <a href="admin.php?id=admin_wydarzenia" title="zobacz odświeżenie strony">Zobacz odświeżenie</a>
  145. </div>';
  146. echo '</div>';
  147. }
  148.  
  149.  
  150. ////////////////////////////
  151. function admin_kategorie_p ()
  152. {
  153. echo '<div class="panel_admin_main">
  154. <div class="panel_admin_naglowek1"><img src="obrazki/kontrolka.png" />
  155. Zarządzanie KATEGORIAMI PRODUKTÓW |
  156. <a href="admin.php?id=home" title="przejdź do główego panelu zarządzania">Panel główny</a> |
  157. <a href="admin.php?id=admin_kategorie_p" title="zobacz odświeżenie strony">Zobacz odświeżenie</a>
  158. </div>';
  159.  
  160. echo '</div>';
  161. }
  162.  
  163. ////////Wyświetlanie strony Zarządzanie sprzedażą
  164. function admin_sprzedaz ()
  165. {
  166. echo '<div class="panel_admin_main">
  167. <div class="panel_admin_naglowek1"><img src="obrazki/kontrolka.png" />
  168. Zarządzanie KLIENTAMI |
  169. <a href="admin.php?id=home" title="przejdź do główego panelu zarządzania">Panel główny</a> |
  170. <a href="admin.php?id=admin_sprzedaz" title="zobacz odświeżenie strony">Zobacz odświeżenie</a>
  171. </div>';
  172.  
  173. echo '</div>';
  174. }
  175.  
  176. ////////////Wywoływanie funkcji zmieniającej strony
  177. if($_REQUEST['id'] == 'home'){
  178. home();
  179. }else if($_REQUEST['id'] == 'statystyki'){
  180. statystyki();
  181. }else if($_REQUEST['id'] == 'admin_wydarzenia'){
  182. admin_wydarzenia();
  183. }else if($_REQUEST['id'] == 'admin_kategorie_w') {
  184. admin_kategorie_w();
  185. }else if($_REQUEST['id'] == 'admin_kategorie_p') {
  186. admin_kategorie_p();
  187. }else if($_REQUEST['id'] == 'admin_produkty'){
  188. admin_produkty();
  189. }else if($_REQUEST['id'] == 'admin_sprzedaz'){
  190. admin_sprzedaz();
  191. }else{
  192. home();
  193. }
  194.  
  195. ?>
  196.  
  197. </div>
  198. </div>
  199.  
  200. <div class="stopka">
  201. <hr />
  202.  
  203. <p class="tekst_stopki">MOYO: administracja - ver. 1.0</p>
  204. </div>
  205. </body>
  206. </html>


I teraz tak. Jeśli się zaloguję jako administrator to owszem mam menu administratora i klikam sobie na kategorie, wiadomości itd., ale gdy chcę wrócić do panelu sterowania, to.... no to właśnie nic nie otrzymuję, białą zupełnie stronę, ewentualnie tekst: jesteś zwykłym użytkownikiem. Czy to zależy od tego, że poszczególnie funkcje muszą być przypisane do sesji?
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.