Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] System logowania - problem z sesjami (chyba)
Forum PHP.pl > Forum > PHP
harek
Witam,

Musiałem napisać prosty system logowania, oparłem go na plikach ponieważ był on przeznaczony dla niewielkiej liczby osób. Wszystko działa poprawnie po za jednym mankamentem. Gdy logujemy się jako jeden z userów system nas wylogowuje podając że login lub hasło jest błędne ( a są oczywiście prawdziwe )wylogowuje nas i w kolejnym formularzu, który jest identyczny jak poprzedni przy wpisaniu tych samych danych loguje nas bez problemu. Stawiam że jest to winna sesji , a raczej moja ale nie wiem jak to rozwiązać.

Mamy 3 pliki :
-logowanie.php
-index.php
-blad.php

Pliki logowanie.php i blad.php są niemal identyczne różnią się tylko tym ze w tym ostatnim jest linijka echo"Błąd złe hasło lub login...";

Oto ich zawartość :
logowanie.php
  1. <?  
  2. ?>
  3.  
  4. HTML bla bla bla
  5.  
  6. <form method="post" action="index.php">
  7. Login : <input type="text" name="login" class="form"><br /><br />
  8. Haslo : <input type="password" name="haslo" class="form"><br />
  9. <br />
  10. <input type="submit" value="Zaloguj" class="form"><br />
  11. </form>
  12.  
  13. HTML bla bla bla
  14.  
  15. <?  
  16. ?>




blad.php
  1. <?  
  2. ?>
  3.  
  4. HTML bla bla bla
  5.  
  6. <FONT COLOR="FF0000">Błąd ! Złe hasło lub login!</font><br /><br /><br /><br />
  7. <form method="post" action="index.php">
  8. Login : <input type="text" name="login" class="form"><br /><br />
  9. Haslo : <input type="password" name="haslo" class="form"><br />
  10. <input type="submit" value="Zaloguj" class="form"><br />
  11. </form>
  12.  
  13. HTML bla bla bla
  14.  
  15. <?  
  16. ?>





część pliku index odpowiedzialna za logowanie :

  1. <?  
  2. ?>
  3. HTML bla bla bla
  4. <? 
  5. if((!isset($_SESSION['id']))&&(!$zalogowany)){
  6.  
  7. $wiersze2=file();
  8. $zalogowany=false;
  9. for($i=0; $i<count($wiersze2) && $zalogowany==false; $i++)
  10. {
  11. $dane=explode (";", $wiersze2[$i]);
  12. if(!isset($_COOKIE['*'])) {
  13. if(trim ($dane[0])==trim($_POST[login]) && trim ($dane[1])==trim($_POST[haslo])) $zalogowany=true;
  14. else $zalogowany=false;
  15. } else 
  16. {
  17. if(trim($_COOKIE['*'])==trim(md5($dane[1]))){
  18. $zalogowany=true;
  19. }else
  20. {
  21. $zalogowany=false;
  22. }
  23. }
  24. if($zalogowany) {
  25. $_SESSION['id']=$dane[2];
  26. $_SESSION['pass']=$dane[1];
  27. $_SESSION['stan']=true;
  28. if($_POST['autologowanie']==1){
  29. if(!isset($_COOKIE['*']))
  30. {
  31. $p=md5($_SESSION['pass']);
  32. SetCookie("*", $p, time()+3600*24*30*12);
  33. } 
  34. }
  35. }
  36. else{
  37. $_SESSION['stan']=false;
  38. header('Location: blad.php');
  39. unset($_SESSION['stan']);
  40. }
  41. }
  42. } 
  43.  
  44. ...
Turgon
Wywołujesz tylko raz ten plik logowanie.php ?

Na czuje myślę, że chodzi o tą linijkę:
  1. <?php
  2. ?>

Spróbuj usunąć i sprawdzić jak działa smile.gif
harek
no a więc usunąłem i dalej to samo, plik logowanie.php wywołuje tylko raz.



EDIT:


Problem rozwiązany, mój głupi błąd wynikający z tego ze skrypt miał opcje autologowania na cookies później się jej pozbyłem i nie usunąłem pewnego fragmentu kodu 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.