Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] sesje, znikające zmienne
Junior-
post 2.05.2007, 18:35:35
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 2.05.2007

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


Jak w temacie. Problem z sesiami. A oto pliki:
who.php:
  1. <?php
  2. session_unset();
  3. ?>
  4. <head><title>Zaloguj się!</title></head>
  5. <style> body {background-color: #ffffd2} </style>
  6.  
  7. <?php include "pionaglowek.php"; ?>
  8. <table align='center' border='0' width="85%" height="90%">
  9. <tr><td border='2'align='center' valign='center'>
  10.  
  11. <form method="post" action="stronaglowna.php">
  12. <p> Login: <input type="text" name="user" > </p>
  13. <p> Hasło: <input type="password" name="pass"> </p>
  14. <input type="submit" name="Zaloguj" value="Zaloguj">
  15. </form>
  16.  
  17. <form method="post" action="formularz.php">
  18. <input type="submit" name="Rejestracja" value="Rejestracja">
  19. </form>
  20. </td></tr>
  21. </body>
  22. </html>

stronaglowna.php
  1. <?php
  2. session_start();
  3. $_SESSION['username'] = $_POST['user'];
  4. $_SESSION['userpass'] = $_POST['pass'];
  5. ob_start();
  6. ?>
  7. <title>Strona Główna</title>
  8.  
  9. <link rel="stylesheet" href=" style.css " type="text/css" />
  10.  
  11. </head>
  12. <style> body {background-color: #ffffd2} </style>
  13. <?php
  14. include "logdobazy.php";
  15. $del = mysql_query(" DELETE FROM temp_haslo ") or die (mysql_error());
  16. $insert=" INSERT INTO temp_haslo
  17. (
  18. temp_password
  19. )
  20. VALUES
  21. (
  22. PASSWORD ( '".$_SESSION['userpass']."' )
  23. )";
  24. $results = mysql_query($insert) or die (mysql_error());
  25.  
  26. if ($_SESSION['username'] !="" && $_SESSION['userpass'] !="")
  27. {
  28. $sql = " SELECT username, password FROM ludzie INNER JOIN temp_haslo ON ludzie.password = temp_haslo.temp_password" .
  29. " WHERE username = '" . $_SESSION['username'] . "' ; ";
  30. $result = mysql_query($sql) or die(mysql_error());
  31.  
  32. if (mysql_num_rows($result) == 0)
  33. { include "pionaglowek.php";
  34. ?>
  35. <table align='center' border='0' width="85%" height="90%">
  36. <tr><td border='2'align='center' valign='center'>
  37. <font color="#FF0000">Podałeś błędne dane. Spróbuj jeszcze raz.</font>
  38.  
  39. <form method="post" action="stronaglowna.php">
  40. <p> Login: <input type="text" name="user" > </p>
  41. <p> Hasło: <input type="password" name="pass"> </p>
  42. <input type="submit" name="Zaloguj" value="Zaloguj">
  43. </form>
  44.  
  45. <form method="post" action="formularz.php">
  46. <input type="submit" name="Rejestracja" value="Rejestracja">
  47. </form>
  48. </td></tr>
  49. </table>
  50. <?php
  51. }
  52. else
  53. {
  54. echo "Strona glowna";
  55. }
  56.  
  57. }
  58. else
  59. {echo "Nie podałeś wymaganych informacji";}
  60. ?>
  61. </body>
  62. </html>

Ze stronki who.php przesyłam login i hasło (metoda POST) i umieszczam je w zmiennych sesyjnych na stronce stronaglowna.php. Sprawdzam wpisane informacje z info z bazy danych i wszystko jest ok (wyswietla się komunikat "Strona glowna") Problem w tym, że po przeładowaniu strony głownej zmienne sesyjne znikają i pojawia się komunikat "Nie podales wymaganych informacji". Jakieś wskazówki?
Go to the top of the page
+Quote Post
wipo
post 2.05.2007, 18:37:18
Post #2





Grupa: Zarejestrowani
Postów: 856
Pomógł: 19
Dołączył: 30.08.2005
Skąd: 100lica

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


A czy problem nie tkwi w session_unset();??


--------------------
Go to the top of the page
+Quote Post
Junior-
post 3.05.2007, 09:24:11
Post #3





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 2.05.2007

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


Niestety nie. sad.gif Próbowałem zmienic na session_start() albo usunąć i nie działa.
Go to the top of the page
+Quote Post
wipo
post 3.05.2007, 10:01:16
Post #4





Grupa: Zarejestrowani
Postów: 856
Pomógł: 19
Dołączył: 30.08.2005
Skąd: 100lica

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


Usuń w ogóle linie session_unset
Możesz też gdzieś na końcu napisać print_r($_SESSION) aby zobaczyć czy sesja jest trzymana czy nie


--------------------
Go to the top of the page
+Quote Post
Junior-
post 3.05.2007, 10:08:41
Post #5





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 2.05.2007

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


Przy pierwszym wejściu na strone gówną wszystko jest ok:
Array ( [username] => kuku [userpass] => kuku ),
A później już nie sad.gif :
Array ( [username] => [userpass] => ).
Go to the top of the page
+Quote Post
wipo
post 3.05.2007, 10:11:58
Post #6





Grupa: Zarejestrowani
Postów: 856
Pomógł: 19
Dołączył: 30.08.2005
Skąd: 100lica

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


Bo czyścisz tą zmienną. Poczytaj w manualu do czego służy session_unset


--------------------
Go to the top of the page
+Quote Post
Junior-
post 3.05.2007, 10:15:08
Post #7





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 2.05.2007

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


Zmienna jest czyszczona w pliku who.php. Natomiast problem pojawia się w stronaglowna.php
Go to the top of the page
+Quote Post
wipo
post 3.05.2007, 10:16:19
Post #8





Grupa: Zarejestrowani
Postów: 856
Pomógł: 19
Dołączył: 30.08.2005
Skąd: 100lica

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


$_SESSION['username'] = $_POST['user'];
$_SESSION['userpass'] = $_POST['pass'];

powyżej masz odpowiedź - no chyba że za każdym razem wysyłasz te dane


--------------------
Go to the top of the page
+Quote Post
Junior-
post 3.05.2007, 10:35:48
Post #9





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 2.05.2007

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


To już wiem gdzie jest problem. już wszystko działa. Dzięki wielkie. smile.gif peace cool.gif
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 - 05:38