Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SESJE] Sesja przestawia sie na 0
Forum PHP.pl > Forum > PHP
Wieloryb
log.php
  1. <?php
  2.  
  3. require('config.php');
  4.  
  5.    echo '<form action="logowanie.php" method="post">';
  6.    echo '<input type="text" name="login" value="login"/><br/>';
  7.    echo '<input type="password" name="pass" value="pass"/><br/>';
  8.    echo '<input type="submit" value="Loguj!" /><br/><br/>';
  9.    echo '</form>';
  10.  
  11.  
  12. if(!isset($_GET['err']))$_GET['err']=0;
  13.  
  14. if($_GET['err']==1)echo'Uzupełnij login!<br/>';
  15. if($_GET['err']==2)echo'Uzupełnij hasło!<br/>';
  16. if($_GET['err']==3)echo'Zły login lub hasło!<br/>';
  17.  
  18. echo 'Nie masz jeszcze konta? <a href="index.php?act=reg">Załóż je!</a>';
  19.  
  20. ?>


logowanie.php
  1. <?php
  2. require('config.php');
  3.  
  4. if(empty($_POST['login']))header('Location:index.php?act=log&err=1');
  5. if(empty($_POST['pass']))header('Location:index.php?act=log&err=2');
  6.  
  7.  
  8. if(mysql_num_rows(mysql_query("select * from users where name = '".htmlspecialchars($_POST["login"])."' AND pass = '".htmlspecialchars(md5($_POST["pass"]))."'"))){
  9.  
  10.  $_SESSION['zalogowany']=1;
  11.  header('Location:index.php?act=aukcje');
  12. } else {
  13. header('Location:index.php?act=log&err=3');
  14. }
  15.  
  16. ?>


index.php
  1. <?php
  2.   if($_GET['wyloguj']=1)$_SESSION['zalogowany']=0;
  3.   if($_SESSION['zalogowany']==0)echo'<a href="?act=log">Zaloguj się</a>';
  4.  
  5.   if($_SESSION['zalogowany']==1){
  6.    echo 'Dodaj aukcję<br/>';
  7.    echo 'Komentarze<br/>';
  8.    echo '<a href="?wyloguj=1">Wyloguj</a><br/>';
  9.   }
  10.  
  11.  ?>


No i niestety. Plik logowanie.php przekierowuje na stronę index.php, a tam dalej pokazuje się napis "Zaloguj się", a nie pokazują sie napisy "dodaj aukcje" itd sad.gif

Pozdrawiam i licze na pomoc
shark121
1] nie widzę żebyś gdzieś ustawił jakieś sesje, tylko sprawdzasz jakie mają wartości
2] taki sposób logowania jest całkowicie niebezpieczny
3] sposób wyłapywania błędów też jest niezbyt przemyślany
Wieloryb
1. 13 linijka logowanie.php
2. co moglbym dodac aby go bardziej zabezpieczyc?
3. w jaki inny sposob moglbym wylapywac te bledy?
l0ud
  1. <?php
  2. if($_GET['wyloguj']=1)$_SESSION['zalogowany']=0;
  3. ?>

Operator przypisania = zamiast operatora porówania ==.

A w sesji powinieneś trzymać najlepiej ID użytkownika i jego hasło (albo lepiej hash md5/sha1). Później sprawdzać je przy każdym odświeżeniu strony 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.