Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MySQL]Znikająca sesja po przejściu na podstrony, Sesja znika po przejściu do podstron
Bellum
post
Post #1





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 2.03.2010
Skąd: ta pewność?

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


Witam, piszę skrypt logowania PHP + MySQL, skrypt oparty o PHP i sztywną nazwę użytkownika i hasła np:
  1. if($_POST['login'] == '123 && $_POST['haslo'] == '1234')
to nie mam żadnych problemów z żywotnością sesji, jednak gdy opieram skrypt o MySQL, to pojawia się właśnie problem.

@poprawka skrypt oparty o sztywne loginy i hasła również ginie. Na Switch CASE

  1. <?php
  2.  
  3. include_once"config_db.php";
  4.  
  5. if(isset($_POST['user']) && isset($_POST['pass']))
  6. {
  7. $zuser = $_POST['user'];
  8. $zpass = $_POST['pass'];
  9.  
  10. $mysqlia = "SELECT * FROM users WHERE user='".$zuser."' AND password='".md5($zpass)."'";
  11. $echo = $db->query($mysqlia);
  12. if($echo->num_rows > 0)
  13. {
  14. $_SESSION['szuser'] = $zuser;
  15. }
  16. $db->close();
  17. }
  18. if(isset($_SESSION['szuser']))
  19. {
  20. echo "<div class='td'>Zalogowałeś się pomyślnie&nbsp;".$_SESSION['szuser']."&nbsp;".$zpass."</div>";
  21. }
  22. else
  23. {
  24.  
  25. echo "<table class='te'>
  26. <form method='POST' action=''>
  27. <tr>
  28. <td colspan='2' class='tdt'>Logowanie do panelu użytkownika</td>
  29. </tr>
  30. <tr>
  31. <td class='td'>Nazwa użytkownika:</td><td class='td'><input type='text' name='user' /></td>
  32. </tr>
  33. <tr>
  34. <td class='td'>Hasło:</td><td class='td'><input type='text' name='pass' /></td>
  35. </tr>
  36. <td colspan='2' class='td'><input type='submit' value='Wyślij' /></td>
  37. </tr>
  38. </form>
  39. </table>";
  40.  
  41. }
  42. ?>

Strona działa o SWITCH CASE - menu, plik nazywa się login.php po wejściu z index.php nazywa się już oczywiście inaczej index.php?id=3 nie wiem czy ma to wpływ na jednorazową żywotność sesji. Otóż loguje się poprawnie otrzymując komunikat. Gdy jednak kliknę Strona główna, bądź chcę przejść do jakiejkolwiek pod strony np: by sprawdzić moje uprawnienia, to sesja znika.

Skrypt do sprawdzania czy sesja istnieje.

  1. <?php
  2. if(isset($_SESSION['szuser']))
  3. {
  4. echo "ok";
  5. }
  6. else
  7. {
  8. echo "<div class='td'>Nie masz uprawnień, lub sesja wygasła</div>";
  9. }
  10. ?>

Gdzie leży problem?


Ten post edytował Bellum 11.06.2010, 17:59:05
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
bastard13
post
Post #2





Grupa: Zarejestrowani
Postów: 664
Pomógł: 169
Dołączył: 8.01.2010
Skąd: Kraków

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


A pokaż jak wygląda index.php.
Go to the top of the page
+Quote Post
Bellum
post
Post #3





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 2.03.2010
Skąd: ta pewność?

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


Cytat(bastard13 @ 11.06.2010, 19:08:00 ) *
A pokaż jak wygląda index.php.

  1. ?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3. <html><head>
  4. <link href="2010.css" rel="stylesheet" type="text/css" />
  5. </head><body>
  6. <div class="td"><a href="index.php">Strona główna</a>
  7. || <a href="index.php?id=2">Zarejestruj się</a>
  8. || <?php
  9. if(isset($_SESSION['szuser']))
  10. {
  11. echo "Zalogowany jako: ". $_SESSION['szuser'];
  12. }
  13. else{
  14.  
  15. echo "<a href='index.php?id=3'>Zaloguj się</a>";
  16. }
  17. ?> || <a href="index.php?id=4">Panel kontrolny</a></div>
  18.  
  19. <?php
  20. switch ($_GET['id']) {
  21.  
  22. case 1:
  23. include'index.php';
  24. break;
  25.  
  26. case 2:
  27. include'register.php';
  28. break;
  29.  
  30. case 3:
  31. include'login.php';
  32. break;
  33.  
  34. case 4:
  35. include'cp.php';
  36. break;
  37.  
  38. default:
  39. include'default.php';
  40. }
  41. ?>
  42. <div id="board_footer">
  43. </div>
  44.  
  45. <div id="footer">
  46. Š 2010 tuptup<br />
  47. Powered By tuptup Š 2010.<br />
  48. </div>
  49. </body></html>

Małpę daję przed session gdyż non stop otrzymuję komunikat,
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at D:\Program Files\WebServ\httpd\2010\index.php:1) in D:\Program Files\WebServ\httpd\2010\index.php on line 1 ale to i tak nie ma wpływu na to czy sesja żyje czy ginie. Dlatego ignoruję ten błąd.
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 6.10.2025 - 19:58