Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]jak zablokowac dostep do stron po zalogowaniu nie zalogowanym?
Forum PHP.pl > Forum > Przedszkole
gigzorr
Czyli uzytkownik sie loguje i ma dostep do panelu.
Ale takze nie zalogowany uzytkownik moze je przegladac , jak zrobic zeby nie zalogowany uzytkownik wchodzac na taka podstrone widzial napis
Prosze sie zalogowac.

A raczej mi chodzi na jakiej zasadzie to dziala.Mam w bazie utworzyc jakas tabele i pozniej sprawdzac status?
cros
sesje.
http://pl.php.net/manual/en/book.session.php
W bazie sql przechowujesz dane uzytkownika, gdy ten wpisze login i haslo, to sprawdzasz w bazie czy taki uzytkownik istnieje i czy haslo sie zgadza, jesli tak, to tworzysz sesje.
Uzytkownik, ktory nie bedzie zalogowany, nie bedzie mial sesji, a wiec przekierujesz go do rejestracji/logowania.
To tak w skrocie, wpisz w google "system logowania na sesjach" i znajdz sobie tutorial.
gigzorr
Mam logowanie na sesjach zrobione , poprostu musze sesje jeszcze jedna dodac i np jak ktos ma status jakis tam albo nie ma to mam go odeslac do logowania tak?
Zwyklym ifem?
Kshyhoo
  1. if ($_SESSION['zalogowany']=='tak' {
  2. echo 'masz dostęp';
  3. } else {
  4. echo 'nie masz dostępu';
  5. }
gigzorr
  1. <?php session_start();
  2.  
  3.  
  4. if(is_numeric($_SESSION['UserId']))
  5. {
  6. if($_SESSION['UserStatus'] == 1)
  7. {
  8. $sBufor .= "<div style='text-decoration:none;font-family:Georgia;color:black;font-size:13px;'>Witaj administratorze";
  9. $sBufor .= ''.$_SESSION['zalogowany_user_login'].' zostałeś/aś pomyślnie zalogowany/a.<br/>';
  10. $sBufor .= '<br/>';
  11. $sBufor .= '<a href="index.php?page=dodajnewsa">Dodaj Newsa</a>';
  12. $sBufor .= '<br/>';
  13. $sBufor .= '<a href="index.php?page=edytuj">Edytuj Newsa</a>';
  14. $sBufor .= '<br/>';
  15. $sBufor .= '<a href="index.php?page=usun">Usun Newsa</a>';
  16. $sBufor .= '<br/>';
  17. $sBufor .= '<a href="index.php?page=wiadomosci">Zobacz zamówienia!</a>';
  18. $sBufor .= '<br/>';
  19. $sBufor .= '<a href="index.php?page=zmianapw">Zmien Haslo</a>';
  20. $sBufor .= '<br/>';
  21. $sBufor .= '<a href="index.php?page=zmiana">Zmien Nazwe Strony</a>';
  22. $sBufor .= '<br/>';
  23. $sBufor .= '<a href="index.php?page=dodajadmina">Dodaj Admina</a>';
  24. $sBufor .= '<br/>';
  25. $sBufor .= '<a href="index.php?page=aktualizacja">Aktualizuj strone</a>';
  26. $sBufor .= '<br/>';
  27. $sBufor .= '<a href="index.php?page=blokujstrone">Blokuj strone</a>';
  28. $sBufor .= '<br/>';
  29. $sBufor .= '<a href="index.php?page=wylog">Wyloguj?</a></div>';
  30.  
  31. }
  32.  
  33.  
  34. elseif ($_SESSION['UserStatus'] == 2)
  35. {
  36. $sBufor .= 'Witaj!';
  37. $sBufor .= '<br/>';
  38. $sBufor .= 'Zostales pomyslnie zalogowany jako Moderator.';
  39. $sBufor .= '<br/>';
  40. $sBufor .= '<a href="index.php?page=dodajnewsa">Dodaj Newsa</a>';
  41. $sBufor .= '<br/>';
  42. $sBufor .= '<a href="index.php?page=edytuj">Edytuj Newsa</a>';
  43. $sBufor .= '<br/>';
  44. $sBufor .= '<a href="index.php?page=usun">Usun Newsa</a>';
  45. $sBufor .= '<br/>';
  46. $sBufor .= '<a href="index.php?page=wylog">Wyloguj?</a></div>';
  47. $sBufor .= '';
  48. $sBufor .= '';
  49. }
  50.  
  51. elseif ($user_status == 0)
  52. {
  53. $sBufor .= "Witaj<b> ".$_SESSION['zalogowany_user_login']."</b> Zostaleś pomyślnie zalogowany.";
  54. $sBufor .= '<br/>';
  55. $sBufor .= '<div style="width:110px;text-decoration:none;">';
  56. $sBufor .= '<a href="index.php?page=zamowieniee">Złóż zamówienie!</a>';
  57. $sBufor .= '<br/>';
  58. $sBufor .= '<a href="index.php?page=otrzymalem">Wiadomośći!</a>';
  59. $sBufor .= '<br/>';
  60. $sBufor .= '<a href="index.php?page=zmianapw">Zmien Haslo</a>';
  61. $sBufor .= '<br/>';
  62. $sBufor .= '<a href="index.php?page=wylog">Wyloguj?</a></div>';
  63. }
  64.  
  65.  
  66.  
  67. }
  68. elseif (!empty($_POST['wyslano']))
  69. {
  70. if (isset($_POST['username']))
  71. {
  72. $username = $_POST['username'];
  73. $username = mysql_real_escape_string($username); // sql injection ochrona
  74. }
  75.  
  76. if (isset($_POST['password']))
  77. {
  78. $password = md5($_POST['password']);
  79. $password = mysql_real_escape_string($password); // sql injection ochrona
  80. }
  81.  
  82.  
  83. $db = mysql_connect("localhost","root","vertrigo") or die ("polaczenie nie moze byc zrealizowane");
  84. mysql_select_db("strona") or die ("nie ma takiej bazy danych");
  85. $query = "SELECT status FROM `rejestracja` WHERE `uzytkownik` = '".$username."' AND `haslo` = '".$password."'";
  86. $result = mysql_query($query) or die(mysql_error());
  87. $result = mysql_fetch_array($result);
  88. if(empty($result))
  89. {
  90. echo '<b>Logowanie nieudane. Sprawdź pisownię nicku oraz hasła.</b>';
  91. echo '<br/>';
  92. echo '<a href="index.php?page=newsy">Powrót</a>';
  93. }
  94. else
  95. {
  96. $_SESSION['zalogowany_user_login'] = $username;
  97. $_SESSION['twojehaslo_to'] = $password;
  98. $_SESSION['UserId'] = $result[0]['id'];
  99. $_SESSION['UserStatus'] = $result[0]['status'];
  100. header('Location: index.php');
  101. }
  102.  
  103. }
  104. else
  105. {
  106. $sBufor = '<form action="" method="post">
  107. <div class="lewo2">Username:</div><div class="prawo2"><input type="text" name="username"></div>
  108. <div class="lewo3">Password:</div><div class="prawo3"><input type="password" name="password"></div>
  109. <div id="dol"><input type="submit" name="wyslano" value="Zaloguj" class="button1"></div>
  110. </form>';
  111.  
  112. }
  113. echo $sBufor;
  114. echo '<br/>';
  115. echo '<br/>';
  116.  
  117.  
  118. ?>
  119. <!-- WYSWIETLA ILOSC ZAREJESTROWANYCH UZYKTOWKOW -->
  120. <?php include("online.php"); ?>


Mam tutaj troche ifow i wlasnie idk ja to sprawdzic , niby mi dales rozwiazanie ale tak admin = 1 , moderator = 2 , zwyklyuser = 0 , i jak mam tutaj podpiac zeby nie zalogowanym wywalal komunikat .Nie rozumiem na jakiej zasadzie ma dzialac ta sesja , czy mam ja wogole utworzyc czy jak?
  1. elseif (!isSet($_SESSION['zalogowany_user_login'])){
  2. echo "Nie jestes zalogowany!"; }
  3.  
  4. }


Cos takiego ?ale to raczej nie dziala.
Kshyhoo
Możesz sprawdzać, czy zmienna sesyjna nie istnieje:
  1. if (!isset($_SESSION['zalogowany']) {
  2. echo 'jesteś niezalogowany!;

Lub jest pusta:
  1. $_SESSION['zalogowany']) == '') {
  2. echo 'jesteś niezalogowany!;


EDIT: Lepszym rozwiązaniem było by napisanie jednego skryptu dla wszystkich userów i sprawdzanie uprawnień, np.:
  1. if ($_SESSION['user'][1] == 1) {
  2. // tu coś, co może tylko admin
  3. }
  4. if ($_SESSION['user'][2] == 1) {
  5. // tu coś, co może tylko moderator
  6. }
gigzorr
Cytat(Kshyhoo @ 2.05.2010, 16:49:15 ) *
Możesz sprawdzać, czy zmienna sesyjna nie istnieje:
  1. if (!isset($_SESSION['zalogowany']) {
  2. echo 'jesteś niezalogowany!;

Lub jest pusta:
  1. $_SESSION['zalogowany']) == '') {
  2. echo 'jesteś niezalogowany!;



Takie cos probowalem ale dalej jest dostep.

Kshyhoo
Wcale się nie dziwię, skoro zerżnąłeś wszystko na żywca... Musisz dopasować to do swoich rozwiązań, ja nakreśliłem Ci tylko rozwiązanie.
  1. if($_SESSION['UserStatus'] == 1) {
  2. echo 'jesteś adminem i możesz wszystko';
  3. }
  4. if($_SESSION['UserStatus'] == 2) {
  5. echo 'jesteś moderatorem i możesz niewiele';
  6. }
  7. if($_SESSION['UserStatus'] == 0) {
  8. echo 'jesteś userem i możesz pomarzyć';
  9. }


PS. Poczytaj o sesjach, sposobie przekazania do sesji praw userów i sprawdzania tychże praw w skryptach. Jest tego sporo, bo sam niedawno uczyłem się używania sesji.
gigzorr
Znow glowa nie mysli , nie w tych plikach co chcialem wklejalem , tylko na hama w logowanie.php ...
Nie zerżnąłem lecz w zlym pliku caly czas to ladowalem.
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.