Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php/MySQL] Sprawdzanie sesji.
Forum PHP.pl > Forum > Przedszkole
Koniczynka
Witam. Tworzę system logowania oparty na bazie danych. Mam jednak pewien problem. Bo o ile przez samo logowanie użytkowników przeszedłem praktycznie bez większych problemów, to mam problem z podstronami. Oparłem to na sesjach i jakieś tam amatorskie efekty na stronie widzę. Ale co trzeba zastosować, żeby na stronę xyz.php niemożna było wejść przez wpisanie w przeglądarce www.costam.pl/xyz.pl . I żeby mieli do niej dostęp tylko zalogowani użytkownicy.

Szukałem na forum podobnych tematów i starałem się zastosować podane tam rozwiązania. Jednak niczego efektywnie nie udało mi się wykorzystać. Prosiłbym o podsunięcie jakiegoś pomysłu do rozwiązania problemu.
Balas
Sprawdzasz na poczatku strony czy jest sesja, jezeli jest to wyswietlasz strone, jezeli nie ma to nie wyswietlasz, proste ;]
Koniczynka
To coś takiego:

  1. <?php
  2.  
  3.  
  4. if (session_start() ) 
  5. { echo 'Jesteś zalogowany';}
  6.  
  7. else { echo 'Nie jesteś zalogowany';}
  8.  
  9. ?>
?

Czy bardziej w stylu:

  1. <?php
  2.  
  3. if ($_POST['login'] = $_SESSION['login'] && $_POST['haslo'] = $_SESSION['haslo']) 
  4. { echo 'Jesteś zalogowany';}
  5. else { echo 'Nie jesteś zalogowany';}
  6.  
  7. ?>
?

W pierwszym wypadku ciągle pokazuje się Jesteś zalogowany, a w drugim zawsze było Nie jesteś zalogowany.
erix
W pierwszym wypadku sprawdza, czy w ogole sie udalo stworzyc sesje.

W drugim bedziesz zalogowany tylko, gdy beda dane z formularza.

  1. <?php
  2.  
  3. //logowanie
  4. if ($_POST['login'] = 'login' and $_POST['haslo'] = 'haslo') 
  5. { $_SESSION['zalogowany'] = true;}
  6. else { $_SESSION['zalogowany'] = false;}
  7.  
  8.  
  9. //sprawdzenie, czy zalogowany
  10. if(isset($_SESSION['zalogowany']) and $_SESSION['zalogowany']){
  11. echo 'zalogowany';
  12. }else{
  13. echo 'a tu nie';
  14. }
  15. ?>
Koniczynka
Niestety, żadnej z tych propozycji nie przyswoiłem :/ Rozwiązałem to inaczej, ale nie wiem, na ile jest to bezpieczne rozwiązanie.

plik.php
  1. <?php session_start(); ?>
  2.  
  3.  
  4. <HTML>
  5. <HEAD>
  6. <TITLE>Panel administracyjny</TITLE>
  7. </head>
  8. <BODY>
  9. <div id=logobar> 
  10. <div id=logoblob>
  11.  
  12. <center><font face=tahoma size=3>
  13. <B>Informacje - panel administracyjny</B>
  14. <br><br>
  15. <font size=2>
  16.  
  17. <?php
  18. if (isset($_SESSION['login'])) {
  19. echo '<div id=witanie>';
  20. echo 'Aktualnie zalogowany jako: ' . $_SESSION['login'];
  21. echo '</div>';
  22. }
  23.  
  24. if ($_SESSION['dostep'] > 2) {
  25.  
  26. echo "<font face=verdana size=1>";
  27. echo '<a href=newsy.php>Informacje </a>';
  28. echo '| '; }
  29.  
  30.  
  31.  
  32. if ($_SESSION['dostep'] > 1) {
  33.  
  34. echo "<font face=verdana size=1>";
  35. echo '<a href=usun.php>Usuń informację</a>';
  36. echo '| '; }
  37.  
  38.  
  39. if ($_SESSION['dostep'] > 1) {
  40.  
  41. echo "<font face=verdana size=1>";
  42. echo '<a href=dodaj.php>Dodaj informację</a>';
  43. echo '| '; }
  44.  
  45.  
  46.  
  47. if ($_SESSION['dostep'] > 1) {
  48.  
  49. echo "<font face=verdana size=1>";
  50. echo '<a href=dodajuzytkow.php>Dodaj użytkownika </a>';
  51. echo '| '; }
  52.  
  53.  
  54.  
  55. if ($_SESSION['dostep'] > 1) {
  56.  
  57. echo "<font face=verdana size=1>";
  58. echo '<a href=zarzadzanie.php>Zarządzanie użytkownikami</a>';
  59. echo '| '; }
  60.  
  61. ?>
  62.  
  63. </td>
  64. </TABLE>



Został on dołączony do pliku dodaj.php. Teraz jeżeli wejdzie się na http://www.koniczynka.voip24h.info/dodaj.php widać tylko tekst, a po zalogowaniu włączają się już linki do funkcji. Jednak nie wiem, czy takie rozwiązanie jest bezpieczne, dlatego proszę o opinię osób bardziej kompetentnych w php niż ja. [Wiem tylko, że bezpieczeństwo tego zależy od bezpieczeństwa serwera ;-) ]
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.