Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Sesje, Gubienie zmiennych...
The Night Shadow
post 7.02.2006, 12:20:16
Post #1





Grupa: Zarejestrowani
Postów: 495
Pomógł: 2
Dołączył: 5.02.2006
Skąd: Wrocław

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


Jakie mogą być przyczyny gubienia wartości zmiennych w sesjach, oraz jak temu przeciwdziałać? Zdarza się, że po stworzeniu sesji, manewrując między kolejnymi stronami, w pewnym momencie gubiona jest zmienna loginu zalogowanego użytkownika, ale co dziwne sam fakt zalogowania nadal jest widoczny.

Np. menu, w którym pewne opcje dostępne są dla zalogowanych, pewne dla admina (znikają tylko te ostatnie).

Przed chwila zauważyłem, ze notorycznie zdarza się to po wejściu na stronę z następującym kodem php:

  1. <?php
  2. if ($send=="Wyślij")
  3. {
  4. $nad=strip_tags(htmlspecialchars(stripslashes(trim($_POST['nada'])), ENT_QUOTES));
  5. $odb=strip_tags(htmlspecialchars(stripslashes(trim($_POST['odbi'])), ENT_QUOTES));
  6. $tem=strip_tags(htmlspecialchars(stripslashes(trim($_POST['tema'])), ENT_QUOTES));
  7. $dza=strip_tags(htmlspecialchars(stripslashes(trim($_POST['zalozeniadata'])), ENT_QUOTES));
  8. $date=time();
  9. $wiadomosc = strip_tags(htmlspecialchars(stripslashes(trim($_POST["tresc"])), ENT_QUOTES));
  10. if ($baza = mysql_connect($mysql_host, $mysql_login, $mysql_haslo)) 
  11. {
  12. if (mysql_select_db($mysql_baza)) 
  13. {
  14. if ($nad==$_SESSION["login"])
  15. {
  16. $zapytanie = "INSERT INTO pw SET odbiorca='$odb', nadawca='$nad', status='odpowiedz', datazalozenia='$dza', temat='$tem', tresc='$wiadomosc', data='$date'";
  17. $wykonaj = mysql_query ($zapytanie);
  18. if ($wykonaj)
  19. {
  20. }
  21. else
  22. {
  23. if ($odb==$_SESSION["login"])
  24. {
  25. $zapytanie = "INSERT INTO pw SET odbiorca='$nad', nadawca='$odb', status='odpowiedz', temat='$tem', tresc='$wiadomosc', data='$date'";
  26.  $wykonaj = mysql_query ($zapytanie);
  27. }
  28. }
  29. $zapytanie = "UPDATE pw SET data='$date' WHERE (temat='$tem' and status='poczatek')";
  30. $wykonaj = mysql_query ($zapytanie);
  31. if ($_SESSION["login"]=$wiersz["nadawca"])
  32. {
  33. $zapy = "UPDATE pw SET pnadawca='przeczytana' WHERE (data='$date' and temat='$tem')";
  34. $wyko = mysql_query ($zapy);
  35. }
  36. if ($_SESSION["login"]=$wiersz["odbiorca"])
  37. {
  38. $zapy = "UPDATE pw SET podbiorca='przeczytana' WHERE (data='$date' and temat='$tem')";
  39. $wyko = mysql_query ($zapy);
  40. }
  41. }
  42. Header ('Location: rejestracja.php?opcja=pw');
  43. }
  44. else
  45. {
  46. echo 
  47. "<span style=\"color:red;\"><center>Nie można połączyć się z bazą - spróbuj ponownie za chwilę...</center></span>";
  48. mysql_close($baza);
  49. }
  50. }
  51. else
  52. {
  53. echo 
  54. "<span style=\"color:red;\"><center>Nie można połączyć się z serwerem MySQL - spróbuj ponownie za chwilę...</center>";
  55. }
  56. }
  57. ?>


Ten post edytował The Night Shadow 7.02.2006, 12:22:34


--------------------
Programista Stron i Serwisów WWW oraz Aplikacji Internetowych
Specjalista ds. Pozycjonowania Aplikacji Internetowych
Copywriter
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
hwao
post 7.02.2006, 12:24:33
Post #2


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




sesja sie tworzy w ogole?smile.gif

session_start() posiadasz?

Nie ma problemow z naglowami?

Dodaj ob_start()
Go to the top of the page
+Quote Post
The Night Shadow
post 7.02.2006, 12:35:00
Post #3





Grupa: Zarejestrowani
Postów: 495
Pomógł: 2
Dołączył: 5.02.2006
Skąd: Wrocław

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


session_start(); zgubiłem... :- ) Dzięki...



A jednak nie... nadal je tu gubi. Poza tym star sesji nie musi nastęować w pliku includowanych jeśli nastąpił w pliku do, którego się includuje prawda?

Zmieniem troszkę ten kod, bo miał kilka wad (logicznych), ale nadal gubi te dane sesyjne,

  1. <?php
  2. if ($send=="Wyślij")
  3. {
  4. $nad=strip_tags(htmlspecialchars(stripslashes(trim($_POST['nada'])), ENT_QUOTES));
  5. $odb=strip_tags(htmlspecialchars(stripslashes(trim($_POST['odbi'])), ENT_QUOTES));
  6. $tem=strip_tags(htmlspecialchars(stripslashes(trim($_POST['tema'])), ENT_QUOTES));
  7. $dza=strip_tags(htmlspecialchars(stripslashes(trim($_POST['zalozeniadata'])), ENT_QUOTES));
  8. $date=time();
  9. $wiadomosc = strip_tags(htmlspecialchars(stripslashes(trim($_POST["tresc"])), ENT_QUOTES));
  10. if ($baza = mysql_connect($mysql_host, $mysql_login, $mysql_haslo)) 
  11. {
  12. if (mysql_select_db($mysql_baza)) 
  13. {
  14. if ($nad==$_SESSION["login"])
  15. {
  16. $zapytanie = "INSERT INTO pw SET odbiorca='$odb', nadawca='$nad', status='odpowiedz', datazalozenia='$dza', temat='$tem', tresc='$wiadomosc', data='$date'";
  17. $wykonaj = mysql_query ($zapytanie);
  18. $zapy = "UPDATE pw SET pnadawca='przeczytana' WHERE (data='$date' and temat='$tem')";
  19. $wyko = mysql_query ($zapy);
  20. $zapytanie = "UPDATE pw SET data='$date' WHERE (temat='$tem' and status='poczatek')";
  21. $wykonaj = mysql_query ($zapytanie);
  22. Header ('Location: rejestracja.php?opcja=pw');
  23. }
  24. else
  25. {
  26. if ($odb==$_SESSION["login"])
  27. {
  28. $zapytanie = "INSERT INTO pw SET odbiorca='$nad', nadawca='$odb', status='odpowiedz', temat='$tem', tresc='$wiadomosc', data='$date'";
  29.  $wykonaj = mysql_query ($zapytanie);
  30.  $zapy = "UPDATE pw SET podbiorca='przeczytana' WHERE (data='$date' and temat='$tem')";
  31. $wyko = mysql_query ($zapy);
  32. $zapytanie = "UPDATE pw SET data='$date' WHERE (temat='$tem' and status='poczatek')";
  33.  $wykonaj = mysql_query ($zapytanie);
  34.  Header ('Location: rejestracja.php?opcja=pw');
  35. }
  36. }
  37. }
  38. else
  39. {
  40. echo 
  41. "<span style=\"color:red;\"><center>Nie można połączyć się z bazą - spróbuj ponownie za chwilę...</center></span>";
  42. mysql_close($baza);
  43. }
  44. }
  45. else
  46. {
  47. echo 
  48. "<span style=\"color:red;\"><center>Nie można połączyć się z serwerem MySQL - spróbuj ponownie za chwilę...</center>";
  49. }
  50. }
  51. ?>


Ten post edytował The Night Shadow 7.02.2006, 12:38:05


--------------------
Programista Stron i Serwisów WWW oraz Aplikacji Internetowych
Specjalista ds. Pozycjonowania Aplikacji Internetowych
Copywriter
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: 19.07.2025 - 17:07