Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: panel logowania problem
Forum PHP.pl > Forum > PHP
de_gie
Witam serdecznie potrzebuję waszej pomocy. Mianowicie mam kilka paneli logowania takich samych kod niżej. Są na serwerze 4 panele logowania do innych pakietów jest to panel_klienta_basic, panel_klienta_silver, panel_klienta_gold, panel_klienta_premium w każdym po zalogowaniu są trochę inne info. Zrobione jest że użytkownik wpisując login i hasło i wybiera swój pakiet jeśli się zgadza login z przypisanym pakietem jest logowanie. I jest ok użytkownik się poprawnie zalogował z pakietem basic i został przekierowany do panel_klienta_basic wszystko ładnie problem polega ze użytkownik w pasku url w przeglądarce jak zmieni sam panel_klienta_basic np. na panel_klienta_silver zostaje zalogowany to panelu panel_klienta_silver. Jak zabezpieczyć by po zmianie url jak pisałem użytkownik się nie zalogował tam tylko okno zęby wyskoczyło do wpisania loginu i hasła?questionmark.gif bardzo proszę o pomoc

  1.  
  2. <?php
  3.  
  4.  
  5.  
  6.  
  7.  
  8. if (isset($_POST['konto']) and isset($_POST['password']) )
  9.  
  10. {
  11.  
  12. include '../config.php';
  13. define('DB_HOST',$dbhost);
  14. define('DB_USER',$dbuser);
  15. define('DB_PASS',$dbpass);
  16. define('DB_DB',$dbname);
  17.  
  18. $connect = mysql_connect(DB_HOST, DB_USER, DB_PASS)
  19. or die('Nie udało połączyc się z bazą danych. '.mysql_error());
  20.  
  21. mysql_select_db(DB_DB,$connect);
  22.  
  23. $konto=mysql_real_escape_string(trim($_POST['konto']));
  24.  
  25. $password=mysql_real_escape_string(trim($_POST['password']));
  26.  
  27. $pakiety=mysql_real_escape_string(trim($_POST['pakiety']));
  28.  
  29. if ($konto!="" and $password!="")
  30.  
  31. {
  32.  
  33.  
  34.  
  35. $zapytanie="SELECT id FROM users WHERE login='$konto' and password ='$password' and pakiet ='$pakiety'";
  36.  
  37. $temp=mysql_query($zapytanie) or die("Wystąpił błąd");
  38.  
  39. $ile=mysql_num_rows($temp);
  40.  
  41. $temp=mysql_fetch_array($temp);
  42.  
  43. $id=$temp['id'];
  44.  
  45.  
  46. if ($ile==1)
  47.  
  48. {
  49.  
  50. $_SESSION['user_id']=$id;
  51.  
  52. $_SESSION['login']=$konto;
  53.  
  54. if($pakiety=="basic")
  55.  
  56. {
  57.  
  58.  
  59. include 'gora.php';
  60. echo('<p class="allok" ><b>Zostales zalogowany.</b><br/><br/> Za chwile zostaniesz przekierowany... <META HTTP-EQUIV="Refresh" CONTENT="2;URL=panel_klienta_basic/index.php"></p>');
  61. include 'dol.php';
  62. }
  63.  
  64.  
  65. if($pakiety=="silver")
  66.  
  67. {
  68.  
  69.  
  70. include 'gora.php';
  71. echo('<p class="allok" ><b>Zostales zalogowany.</b><br/><br/> Za chwile zostaniesz przekierowany... <META HTTP-EQUIV="Refresh" CONTENT="2;URL=panel_klienta_silver/index.php"></p>');
  72. include 'dol.php';
  73. }
  74.  
  75.  
  76. if($pakiety=="gold")
  77.  
  78. {
  79.  
  80.  
  81. include 'gora.php';
  82. echo('<p class="allok" ><b>Zostales zalogowany.</b><br/><br/> Za chwile zostaniesz przekierowany... <META HTTP-EQUIV="Refresh" CONTENT="2;URL=panel_klienta_gold/index.php"></p>');
  83. include 'dol.php';
  84. }
  85.  
  86. if($pakiety=="premium")
  87.  
  88. {
  89.  
  90.  
  91. include 'gora.php';
  92. echo('<p class="allok" ><b>Zostales zalogowany.</b><br/><br/> Za chwile zostaniesz przekierowany... <META HTTP-EQUIV="Refresh" CONTENT="2;URL=panel_klienta_premium/index.php"></p>');
  93. include 'dol.php';
  94. }
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103. }
  104.  
  105.  
  106. else {
  107. include 'gora.php';
  108. echo ('<p class="wazne"><br />Podales zle dane. Kliknij <b><a href="login.php">wstecz</a></b> aby sprobowac ponownie.</p>');
  109. include 'dol.php'; }
  110. }
  111.  
  112. }
  113.  
  114. if ($_POST['konto']=="" || $_POST['password']=="" || $_POST['pakiety']=="" ){
  115. include 'gora.php';
  116. ?>
  117.  
  118. <form action="" method="post">
  119.  
  120.  
  121. <p style="text-align:center;"><strong><tt>Nazwa konta:</tt></strong><input name="konto" type="text" value="" /><br />
  122.  
  123. <strong><tt>Hasło:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></strong><input name="password" type="password" value="" /><br /><br />
  124.  
  125. Wybierz swój wykupiony pakiet:&nbsp;&nbsp;&nbsp;<select name="pakiety" size="1" type="pakiety" value="">
  126. <option value="basic">Basic</option>
  127. <option value="silver">Silver</option>
  128. <option value="gold">Gold</option>
  129. <option value="premium">Premium</option>
  130.  
  131.  
  132. </select>
  133. <br />
  134. <br />
  135. <input type="submit" value="Zaloguj" />
  136. </p>
  137.  
  138.  
  139.  
  140.  
  141. <?php
  142. include 'dol.php';
  143. }?>
  144.  
  145.  
  146.  
toaspzoo
  1. $pakiety=mysql_real_escape_string(trim($_POST['pakiety']));
  2. $_SESSION['pakiet']=mysql_real_escape_string(trim($_POST['pakiety']));
  3. if($_SESSION['pakiet']=="premium")
  4.  
  5. { ...
de_gie
Skrypt mi działa tylko chodzi o to że jak użytkownik po zalogowaniu np będzie w panelu panel_klienta_basic to jak zmieni adres url w przeglądarce np na panel_klienta_silver to będzie zalogowany do panelu silver a tak niechce wiec przy probie takiej użytkownika jak zmieni np adres url jak pisaliśmy wyżej na panel_klienta_silver to zostanie poproszony o login i haslo. Wszystkie panele mają taki sam kod jak napisałem na początku postu. Tylko są warunki. To co wyżej pierwszy post to plik login.php a teraz niżej index.php panelu

  1. <?php
  2.  
  3. $iduser = $_SESSION['user_id'];
  4. $kto = $_SESSION['login'];
  5. if (isset($_SESSION['user_id']) and isset($_SESSION['login']))
  6.  
  7.  
  8. {
  9. include 'ceny.php';
  10.  
  11. include '../config.php';
  12. define('DB_HOST',$dbhost);
  13. define('DB_USER',$dbuser);
  14. define('DB_PASS',$dbpass);
  15. define('DB_DB',$dbname);
  16.  
  17. $connect = mysql_connect(DB_HOST, DB_USER, DB_PASS)
  18. or die('Nie udało połączyc się z bazą danych. '.mysql_error());
  19.  
  20. mysql_select_db(DB_DB,$connect);
  21. include 'gora.php';
  22. $query2 = 'SELECT * FROM users WHERE id = '.$iduser.' ' ;
  23. $results2 = mysql_query($query2) ;
  24. $row2 = mysql_fetch_array($results2) ;
  25. $obecnadata = date("y-m-d");
  26. $iledni2=($row2['dokiedy']-strtotime($obecnadata));
  27. $iledni = $iledni2/60/60/24;
  28.  
  29.  
  30.  
  31. if ($_GET['name'] == "doladuj") {
  32.  
  33. include 'user/doladuj.php';
  34.  
  35. } else if ($_GET['name'] == "edytuj") {
  36.  
  37. include 'user/edycja.php';
  38.  
  39. } else if ($_GET['name'] == "pomoc") {
  40.  
  41. include 'user/pomoc.php';
  42.  
  43. } else if ($_GET['name'] == "daneprzelewu") {
  44.  
  45. include 'user/dane_przelewu.php';
  46.  
  47.  
  48. } else {
  49.  
  50. include 'user/domyslne.php';
  51.  
  52. }
  53. include 'dol.php';
  54. }
  55.  
  56. else
  57.  
  58. {
  59. include 'login.php';
  60.  
  61.  
  62.  
  63. }
  64.  
  65.  
  66.  
  67.  
  68. ?>
toaspzoo
no to przecież sprawdzasz w bazie...
de_gie
no tak ale po zmianie adresu w przeglądarce użytkownik się automatycznie loguje do innego panelu a tak nie chce wszystko się opiera na tej samej bazie i inaczej nie mogę zrobić więc jakoś nie wiem sesje w każdym panelu pozmieniać da to coś jak w każdym panelu będzie inna nazwa sesji czy żeby się zamykał po zmianie url
toaspzoo
to sprawdzaj w każdym pliku, czy $_SESSION['pakiet'] == pakietowi
de_gie
podaj jak możesz przykładzik bo nie wiem jak się zabrać za to. Zrobiłem tak w pliku login.php i nie działa jest to samo. I każdym panelu zrobiłem sesion pakiet potem w drugim sesion pakiet 2 itp może coś w pliku index.php co wkleiłem wyżej coś zmienić?

  1.  
  2.  
  3.  
  4.  
  5.  
  6. <?php
  7.  
  8. //if ($_POST['konto']=="" || $_POST['password']=="" ) echo"dupa";
  9.  
  10.  
  11. if (isset($_POST['konto']) and isset($_POST['password']) )
  12.  
  13. {
  14.  
  15. include '../config.php';
  16. define('DB_HOST',$dbhost);
  17. define('DB_USER',$dbuser);
  18. define('DB_PASS',$dbpass);
  19. define('DB_DB',$dbname);
  20.  
  21. $connect = mysql_connect(DB_HOST, DB_USER, DB_PASS)
  22. or die('Nie udało połączyc się z bazą danych. '.mysql_error());
  23.  
  24. mysql_select_db(DB_DB,$connect);
  25.  
  26. $konto=mysql_real_escape_string(trim($_POST['konto']));
  27.  
  28. $password=mysql_real_escape_string(trim($_POST['password']));
  29.  
  30.  
  31.  
  32. $pakiety=mysql_real_escape_string(trim($_POST['pakiety']));
  33. $_SESSION['pakiet2']=mysql_real_escape_string(trim($_POST['pakiety']));
  34.  
  35.  
  36.  
  37.  
  38. if ($konto!="" and $password!="")
  39.  
  40. {
  41.  
  42.  
  43.  
  44. $zapytanie="SELECT id FROM users WHERE login='$konto' and password ='$password' and pakiet ='$pakiety'";
  45.  
  46. $temp=mysql_query($zapytanie) or die("Wystąpił błąd");
  47.  
  48. $ile=mysql_num_rows($temp);
  49.  
  50. $temp=mysql_fetch_array($temp);
  51.  
  52. $id=$temp['id'];
  53.  
  54.  
  55. if ($ile==1)
  56.  
  57. {
  58.  
  59. $_SESSION['user_id']=$id;
  60.  
  61. $_SESSION['login']=$konto;
  62.  
  63.  
  64.  
  65.  
  66.  
  67. if($_SESSION['pakiet2']=="basic")
  68.  
  69. {
  70.  
  71.  
  72. include 'gora.php';
  73. echo('<p class="allok" ><b>Zostales zalogowany.</b><br/><br/> Za chwile zostaniesz przekierowany... <META HTTP-EQUIV="Refresh" CONTENT="2;URL=index.php"></p>');
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81.  
  82. include 'dol.php';
  83. }
  84.  
  85.  
  86. if($_SESSION['pakiet2']=="silver")
  87.  
  88. {
  89.  
  90.  
  91. include 'gora.php';
  92. echo('<p class="allok" ><b>Zostales zalogowany.</b><br/><br/> Za chwile zostaniesz przekierowany... <META HTTP-EQUIV="Refresh" CONTENT="2;URL=index.php"></p>');
  93. include 'dol.php';
  94. }
  95.  
  96.  
  97. if($_SESSION['pakiet2']=="gold")
  98. {
  99.  
  100.  
  101. include 'gora.php';
  102. echo('<p class="allok" ><b>Zostales zalogowany.</b><br/><br/> Za chwile zostaniesz przekierowany... <META HTTP-EQUIV="Refresh" CONTENT="2;URL=index.php"></p>');
  103. include 'dol.php';
  104. }
  105.  
  106. if($_SESSION['pakiet2']=="premium")
  107.  
  108. {
  109.  
  110.  
  111. include 'gora.php';
  112. echo('<p class="allok" ><b>Zostales zalogowany.</b><br/><br/> Za chwile zostaniesz przekierowany... <META HTTP-EQUIV="Refresh" CONTENT="2;URL=index.php"></p>');
  113.  
  114.  
  115.  
  116. }
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125. }
  126.  
  127.  
  128. else {
  129. include 'gora.php';
  130. echo ('<p class="wazne"><br />Podales zle dane. Kliknij <b><a href="login.php">wstecz</a></b> aby sprobowac ponownie.</p>');
  131. include 'dol.php'; }
  132. }
  133.  
  134. }
  135.  
  136. if ($_POST['konto']=="" || $_POST['password']=="" || $_POST['pakiety']=="" ){
  137. include 'gora.php';
  138. ?>
  139.  
  140. <form action="" method="post">
  141.  
  142.  
  143. <p style="text-align:center;"><strong><tt>Nazwa konta:</tt></strong><input name="konto" type="text" value="" /><br />
  144.  
  145. <strong><tt>Hasło:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></strong><input name="password" type="password" value="" /><br /><br />
  146.  
  147. Wybierz swój wykupiony pakiet:&nbsp;&nbsp;&nbsp;<select name="pakiety" size="1" type="pakiety" value="">
  148. <option value="basic">Basic</option>
  149. <option value="silver">Silver</option>
  150. <option value="gold">Gold</option>
  151. <option value="premium">Premium</option>
  152.  
  153.  
  154. </select>
  155. <br />
  156. <br />
  157. <input type="submit" value="Zaloguj" />
  158. </p>
  159.  
  160.  
  161.  
  162.  
  163. <?php
  164. include 'dol.php';
  165. }?>
  166.  
toaspzoo
w plikach:

  1. if($_SESSION['pakiet']!="premium") print ' nie masz uprawnien'; exit;
de_gie
Nie bardzo wiem w którym miejscu to wkleić i co to ma robić? Zrobiłem tak w plikach login tylko do innych paneli inne nazwa sesi basic silver gold i premium. Ale nie działa. Logowanie pierwsze odbywa się z panel_klienta i potem jest odpowiednio przekierowane w zależności od pakietu usera do np panel_klienta_basic po takiej zmianie jak napisałeś to po zalogowaniu i przekierowaniu np. do panel_klienta_premium po zmianie nazwy url do panel_klienta_basic użytkownik jest zalogowany i tak do panelu basic sad.gif

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. <?php
  8.  
  9. //if ($_POST['konto']=="" || $_POST['password']=="" ) echo"dupa";
  10.  
  11.  
  12. if (isset($_POST['konto']) and isset($_POST['password']) )
  13.  
  14. {
  15.  
  16. include '../config.php';
  17. define('DB_HOST',$dbhost);
  18. define('DB_USER',$dbuser);
  19. define('DB_PASS',$dbpass);
  20. define('DB_DB',$dbname);
  21.  
  22. $connect = mysql_connect(DB_HOST, DB_USER, DB_PASS)
  23. or die('Nie udało połączyc się z bazą danych. '.mysql_error());
  24.  
  25. mysql_select_db(DB_DB,$connect);
  26.  
  27. $konto=mysql_real_escape_string(trim($_POST['konto']));
  28.  
  29. $password=mysql_real_escape_string(trim($_POST['password']));
  30.  
  31.  
  32.  
  33. $pakiety=mysql_real_escape_string(trim($_POST['pakiety']));
  34. $_SESSION['pakiet']=mysql_real_escape_string(trim($_POST['pakiety']));
  35.  
  36.  
  37.  
  38.  
  39. if ($konto!="" and $password!="")
  40.  
  41. {
  42.  
  43.  
  44.  
  45. $zapytanie="SELECT id FROM users WHERE login='$konto' and password ='$password' and pakiet ='$pakiety'";
  46.  
  47. $temp=mysql_query($zapytanie) or die("Wystąpił błąd");
  48.  
  49. $ile=mysql_num_rows($temp);
  50.  
  51. $temp=mysql_fetch_array($temp);
  52.  
  53. $id=$temp['id'];
  54.  
  55.  
  56. if ($ile==1)
  57.  
  58. {
  59.  
  60. $_SESSION['user_id']=$id;
  61.  
  62. $_SESSION['login']=$konto;
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69. if($_SESSION['pakiet']!="basic") print ' nie masz uprawnien'; exit;
  70.  
  71.  
  72.  
  73. if($_SESSION['pakiet']=="basic")
  74.  
  75. {
  76.  
  77.  
  78. include 'gora.php';
  79. echo('<p class="allok" ><b>Zostales zalogowany.</b><br/><br/> Za chwile zostaniesz przekierowany... <META HTTP-EQUIV="Refresh" CONTENT="2;URL=panel_klienta_basic/index.php"></p>');
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88. include 'dol.php';
  89. }
  90.  
  91.  
  92. if($_SESSION['pakiet']=="silver")
  93.  
  94. {
  95.  
  96.  
  97. include 'gora.php';
  98. echo('<p class="allok" ><b>Zostales zalogowany.</b><br/><br/> Za chwile zostaniesz przekierowany... <META HTTP-EQUIV="Refresh" CONTENT="2;URL=panel_klienta_silver/index.php"></p>');
  99. include 'dol.php';
  100. }
  101.  
  102.  
  103. if($_SESSION['pakiet']=="gold")
  104. {
  105.  
  106.  
  107. include 'gora.php';
  108. echo('<p class="allok" ><b>Zostales zalogowany.</b><br/><br/> Za chwile zostaniesz przekierowany... <META HTTP-EQUIV="Refresh" CONTENT="2;URL=panel_klienta_gold/index.php"></p>');
  109. include 'dol.php';
  110. }
  111.  
  112. if($_SESSION['pakiet']=="premium")
  113.  
  114. {
  115.  
  116.  
  117. include 'gora.php';
  118. echo('<p class="allok" ><b>Zostales zalogowany.</b><br/><br/> Za chwile zostaniesz przekierowany... <META HTTP-EQUIV="Refresh" CONTENT="2;URL=panel_klienta_premium/index.php"></p>');
  119. include 'dol.php';
  120.  
  121.  
  122.  
  123. }
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132. }
  133.  
  134.  
  135. else {
  136. include 'gora.php';
  137. echo ('<p class="wazne"><br />Podales zle dane. Kliknij <b><a href="login.php">wstecz</a></b> aby sprobowac ponownie.</p>');
  138. include 'dol.php'; }
  139. }
  140.  
  141. }
  142.  
  143. if ($_POST['konto']=="" || $_POST['password']=="" || $_POST['pakiety']=="" ){
  144. include 'gora.php';
  145. ?>
  146.  
  147. <form action="" method="post">
  148.  
  149.  
  150. <p style="text-align:center;"><strong><tt>Nazwa konta:</tt></strong><input name="konto" type="text" value="" /><br />
  151.  
  152. <strong><tt>Hasło:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></strong><input name="password" type="password" value="" /><br /><br />
  153.  
  154. Wybierz swój wykupiony pakiet:&nbsp;&nbsp;&nbsp;<select name="pakiety" size="1" type="pakiety" value="">
  155. <option value="basic">Basic</option>
  156. <option value="silver">Silver</option>
  157. <option value="gold">Gold</option>
  158. <option value="premium">Premium</option>
  159.  
  160.  
  161. </select>
  162. <br />
  163. <br />
  164. <input type="submit" value="Zaloguj" />
  165. </p>
  166.  
  167.  
  168.  
  169.  
  170. <?php
  171. include 'dol.php';
  172. }?>
  173.  
  174.  
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.