Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Znikająca sesja
shoq
post 19.05.2007, 12:26:12
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 19.05.2007

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


Mam problem. Niedawno zacząłem uczyć się php i "bawić" w pisanie skryptów. Ostatnio próbowałem napisać prosty skrypt logowania oparty na sesjach. Niestety, kiedy udaje mi się zalogować i utworzyć sesję, po załadowaniu strony od nowa dwukrotnie (bez wyłączania przeglądarki) sesja po prostu znika i muszę logować się na nowo.
Jak temu zapobiec?

PS To nie jest problem z session_start().
Go to the top of the page
+Quote Post
pawel81
post 19.05.2007, 12:33:31
Post #2





Grupa: Zarejestrowani
Postów: 110
Pomógł: 13
Dołączył: 28.04.2007

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


W każdym pliku dajesz session_start, pokaż kod.
Go to the top of the page
+Quote Post
shoq
post 19.05.2007, 12:39:15
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 19.05.2007

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


Mam to w 1 pliku. Oto kod:

  1. <?php
  2. if ($_SESSION["loged"] == true) {
  3. echo ('Jesteś już zalogowany!');
  4. }
  5.  
  6. else {
  7. echo ('<br />Zaloguj się!');
  8.  
  9.  
  10.  
  11.  
  12. if (empty($_POST["login"]) || empty($_POST["haslo"])) {
  13.  
  14.  
  15.  
  16. echo ('<form action="log.php" method="post">
  17. Login: <input type="text" name="login" maxlength="10" /><br />
  18. Hasło: <input type="password" name="haslo" maxlength="15" /><br />
  19. <input type="submit" name="ok" value="Zatwierdź" />
  20. </form> ');
  21.  
  22. echo ('<br />Podaj login i hasło.');
  23. }
  24. else if ($_POST["login"] == "admin" && $_POST["haslo"] == "12345") {
  25. echo ('<br />Zalogowałeś się.');
  26. $_SESSION["loged"] = true;
  27. }
  28. else {
  29. echo ('<form action="log.php" method="post">
  30. Login: <input type="text" name="login" maxlength="10" /><br />
  31. Hasło: <input type="password" name="haslo" maxlength="15" /><br />
  32. <input type="submit" name="ok" value="Zatwierdź" />
  33. </form> ');
  34.  
  35. echo('<br />Niepoprawny login lub hasło!');
  36. }
  37. }
  38.  
  39.  
  40. echo ('<br /><br /><br />');
  41. echo ('<form acion="log.php" method="post"><input type="submit" name="haslo" value="Wyłącz sesję"></form>');
  42.  
  43. if ($_POST["haslo"] != "12345") {
  44. $_SESSION["loged"] = false;
  45. }
  46. ?>


Kiedy usunąłem tą ostatnią instrukcję warunkową, zaczęło działać dobrze, dlaczego? Czy $_POST["haslo"] traci wartość po przeładowaniu strony?

Ten post edytował shoq 19.05.2007, 14:20:20
Go to the top of the page
+Quote Post
pawel81
post 19.05.2007, 12:59:58
Post #4





Grupa: Zarejestrowani
Postów: 110
Pomógł: 13
Dołączył: 28.04.2007

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


  1. <?php
  2.  
  3.  
  4.  
  5.  
  6. if (isset($_SESSION["loged"]) && $_SESSION["loged"] == true) {
  7. echo ('Jesteś już zalogowany!');
  8. }
  9.  
  10. else {
  11. echo ('<br />Zaloguj się!');
  12.  
  13. if (empty($_POST["login"]) || empty($_POST["haslo"])) {
  14.  
  15. echo '<form action="log.php" method="post">
  16. Login: <input type="text" name="login" maxlength="10" /><br />
  17. Hasło: <input type="password" name="haslo" maxlength="15" /><br />
  18. <input type="submit" name="ok" value="Zatwierdź" />
  19. </form> ';
  20.  
  21. echo '<br />Podaj login i hasło.';
  22. }
  23.  
  24. else if ($_POST["login"] == "admin" && $_POST["haslo"] == "12345") {
  25. echo '<br />Zalogowałeś się.';
  26. $_SESSION["loged"] = true;
  27. }
  28.  
  29. else {
  30. echo '<form action="log.php" method="post">
  31. Login: <input type="text" name="login" maxlength="10" /><br />
  32. Hasło: <input type="password" name="haslo" maxlength="15" /><br />
  33. <input type="submit" name="ok" value="Zatwierdź" />
  34. </form> ';
  35.  
  36. echo'<br />Niepoprawny login lub hasło!';
  37. }
  38. }
  39.  
  40.  
  41. echo '<br /><br /><br />';
  42. echo '<form acion="log.php" method="post"><input type="submit" name="haslo" value="Wyłącz sesję"></form>';
  43.  
  44. if (isset($_POST["haslo"])) {
  45. if ($_POST["haslo"] != "12345") {
  46.  
  47.  $_SESSION["loged"] = false;
  48. }
  49. }
  50. ?>
Go to the top of the page
+Quote Post
shoq
post 19.05.2007, 14:18:07
Post #5





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 19.05.2007

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


Dzięki, to pomogło. Głupi błąd, nie pomyślałem o tym. ;]
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: 14.08.2025 - 07:19