Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] System logowania - problem z sesjami (chyba)
harek
post 29.12.2006, 17:50:26
Post #1





Grupa: Zarejestrowani
Postów: 45
Pomógł: 0
Dołączył: 5.08.2003

Ostrzeżenie: (0%)
-----


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. ...
Go to the top of the page
+Quote Post
Turgon
post 30.12.2006, 09:23:29
Post #2





Grupa: Zarejestrowani
Postów: 800
Pomógł: 0
Dołączył: 26.11.2005
Skąd: Nowy Sącz

Ostrzeżenie: (0%)
-----


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


--------------------
Jah Music Is On My Mind !
Go to the top of the page
+Quote Post
harek
post 30.12.2006, 22:57:36
Post #3





Grupa: Zarejestrowani
Postów: 45
Pomógł: 0
Dołączył: 5.08.2003

Ostrzeżenie: (0%)
-----


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

Ten post edytował harek 30.12.2006, 23:14:23
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.06.2025 - 07:33