Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem z sesja(tak podejrzewam)
Forum PHP.pl > Forum > Przedszkole
miszqa
Witam,
Mam problem z sesja(tak podejrzewam). Na stronie www.suwalki.mwg.pl/prestiz mam skrypty. W indexie mam ustawiona sesje. Pliki sa wczytywane za pomoca includa
tj.
if($plik=="") {
include ('aa.php');
}
...
  1. <?php
  2.  
  3. include_once ('config.php');
  4.  
  5. if(isset($HTTP_POST_VARS['login']) && isset($HTTP_POST_VARS['pass']))
  6. {
  7. // jeżeli użytkownik właśnie podjął próbę zalogowania
  8. $login = $HTTP_POST_VARS['login'];
  9. $pass = $HTTP_POST_VARS['pass'];
  10.  
  11.  
  12. define(&#092;"BLAD\", \"<BR>&nbsp;<b style=\"color:red\">BŁĄD:</b>\"); 
  13. $db = mysql_connect($dbhost, $dbuser, $dbpass) or die (BLAD . &#092;"Nie mogę połączyć się z serwerem bazy.\"); 
  14. mysql_select_db($dbname, $db) or die(BLAD . &#092;"Nie mogę wybrać odpowiedniej bazy.\");
  15.  
  16. //$pass=md5($pass);
  17. $zapytanie = &#092;"SELECT * FROM users2 WHERE user_login='$login' AND user_pass='$pass'\";
  18. $wynik = mysql_query($zapytanie, $db);
  19. if(mysql_num_rows($wynik) > 0)
  20. {
  21. $HTTP_SESSION_VARS['prawid_uzyt'] = $login;
  22. $result = mysql_db_query($dbname,&#092;"SELECT * FROM status, users WHERE user_login='$login' AND user_pass='$pass' AND users.status_id=status.status_id\");
  23. while ($row = mysql_fetch_array($result)) {
  24. $status=$row[&#092;"status_nazwa\"];
  25. $HTTP_GET_VARS['status']=$status;
  26. $login=$row[&#092;"user_login\"];
  27. $HTTP_GET_VARS['login']=$login;
  28. }
  29. $HTTP_SESSION_VARS['status'] = $status;
  30. $HTTP_SESSION_VARS['login'] = $login;
  31. }
  32. }
  33. ?>
  34. <!--  DOKUMENRT GLOWNY -->
  35. <?
  36. include (&#092;"inc.naglowek.php\");
  37. ?>
  38. <TABLE align=\"center\">
  39. <TR>
  40. <TD>
  41. <?
  42. if(isset($HTTP_SESSION_VARS['prawid_uzyt']))
  43. {
  44. define(&#092;"BLAD\", \"<BR>&nbsp;<b style=\"color:red\">BŁĄD:</b>\"); 
  45. $db = mysql_connect($dbhost, $dbuser, $dbpass) or die (BLAD . &#092;"Nie mogę połączyć się z serwerem bazy.\"); 
  46. mysql_select_db($dbname, $db) or die(BLAD . &#092;"Nie mogę wybrać odpowiedniej bazy.\");
  47.  
  48. ?>
  49.  
  50.  
  51. <TABLE>
  52. <TR>
  53. <TD valign=\"top\">
  54. <? 
  55. include (&#092;"inc.logowanie1.php\");
  56. include (&#092;"inc.panellewy.php\");
  57. ?>
  58. </TD>
  59. <TD valign=\"top\">
  60. <?
  61. include (&#092;"inc.top.php\"); 
  62. include (&#092;"inc.menus.php\");
  63. include (&#092;"inc.menus1.php\");
  64. ?>
  65. <TABLE align=\"center\" class=\"ramka\" width=\"610\" bgcolor=\"#cdc7bb\">
  66. <TR>
  67. <TD>
  68. <?
  69. if ($id=='rejestracja') {
  70. include (&#092;"rejestracja.php\");
  71. } elseif ($id=='uczniowie') {
  72. include (&#092;"uczniowie.php\");
  73. } elseif ($id=='szkoly') {
  74. include (&#092;"szkoly.php\");
  75. } elseif ($id=='rozgrywki') {
  76. include (&#092;"rozgrywki.php\");
  77. } elseif ($id=='wyniki') {
  78. include (&#092;"wyniki.php\");
  79. } elseif ($id=='statystyki') {
  80. include (&#092;"statystyki.php\");
  81. } elseif ($id=='kontakt') {
  82. include (&#092;"kontakt.php\");
  83.  
  84. } elseif ($id=='show') {
  85. include (&#092;"show.php\");
  86. } elseif ($id=='edit') {
  87. include (&#092;"edit.php\");
  88. } elseif ($id=='zmiana_hasla') {
  89. include (&#092;"haslo.php\");
  90. } elseif ($id=='wyloguj') {
  91. include (&#092;"wyloguj.php\");
  92.  
  93. } elseif ($id=='glosowanie') {
  94. include (&#092;"glosuj.php\");
  95. } else {
  96. include (&#092;"info.php\");
  97. }
  98. ?>
  99. </TD>
  100. </TR>
  101. </TABLE>
  102. </TD>
  103. </TR>
  104. </TABLE>
  105. <?
  106. } else {
  107. ?>
  108. <TABLE>
  109. <TR>
  110. <TD valign=\"top\">
  111. <? 
  112. include (&#092;"inc.logowanie.php\");
  113. include (&#092;"inc.panellewy.php\");
  114. ?>
  115. </TD>
  116. <TD valign=\"top\">
  117. <?
  118. include (&#092;"inc.top.php\"); 
  119. include (&#092;"inc.menus.php\");
  120. ?>
  121. <TABLE align=\"center\" class=\"ramka\" width=\"610\" bgcolor=\"#cdc7bb\">
  122. <TR>
  123. <TD>
  124. <?
  125. if ($id=='rejestracja') {
  126. include (&#092;"rejestracja.php\");
  127. } elseif ($id=='uczniowie') {
  128. include (&#092;"uczniowie.php\");
  129. } elseif ($id=='szkoly') {
  130. include (&#092;"szkoly.php\");
  131. } elseif ($id=='rozgrywki') {
  132. include (&#092;"rozgrywki.php\");
  133. } elseif ($id=='wyniki') {
  134. include (&#092;"wyniki.php\");
  135. } elseif ($id=='statystyki') {
  136. include (&#092;"statystyki.php\");
  137. } elseif ($id=='kontakt') {
  138. include (&#092;"kontakt.php\");
  139.  
  140. } else {
  141. include (&#092;"info.php\");
  142. }
  143. ?>
  144. </TD>
  145. </TR>
  146. </TABLE>
  147. </TD>
  148. </TR>
  149. </TABLE>
  150. <?
  151. }
  152. ?>
  153. <TABLE align=\"center\">
  154. <TR>
  155. <TD>
  156. <?
  157. include (&#092;"inc.stopka.php\"); 
  158. ?>
  159. </TD>
  160. </TR>
  161. </TABLE>
  162. </TD>
  163. </TR>
  164. </TABLE>

No i teraz po zalogowaniu sie (login: prestiz pass: prestiz1)niby wszystko jest ok ale podczas przegladania kolejnych stron nie pokazuje ich zawartosci. Dopiero po odswierzeniu pokazuje tresc.

Co moze byc tego przyczyna??

Z gory dziekuje...
Guest
tez mialem podobny problem i do dzisiaj nie wiem jak go rozwiazac? moze ktos z wielkich bedzie wiedzial jak to zrobic. Najsmieszniejsze ze sprawdzalem to i jak wolno kliknie sie w linka to dziala, a jak szybko to tak jakby nie lapal opcji i odswierza stary skrypt
kszychu
Spróbuj zamiast starej tablicy $HTTP_SESSION_VARS użyć nowej $_SESSION. Analogicznie używaj tablic $_GET i $_POST. Nie wiem, czy to rozwiąże Twój problem, ale na pewno będziesz bardziej TRENDY ;-)
dasko
przylaczam sie do poszkodowanych biggrin.gif

też mam ten problem...

@Kszychu: niestety to nie pomaga... ja zawsze używam tych 'nowych' tablic...
sf
Dajcie jakiś prostrzy kod z istniejącą obsługą błędów, wypisanie zmiennych sesyjnych za pomocą print_r, var_dump podczas tego nie wgrywania. Bo ten kod co został przedstawiony to jest bagno, a nie kod tongue.gif
rogrog
u mnie takie objawy były kiedyśwynikiem konfliktu nazw zmiennych GET i SESSION przy włączonym register_globals na serwerze

co do kodu to najlepiej zrób sobie tablicę asocjacyjną wartość id => nazwa pliku do włączenia wtedy kod będzie krótszy, bardziej przejrzysty i łatwiejszy w modyfikacji
miszqa
rogrog moglbys troszke jasniej?

poza tym po zmianie zmiennych na krotsze nie zmienilo efektu dzialania

najsmieszniejsze ze przed zalogowaniem wszystko dziala dopiero po zalogowaniu wszystko sie sypie... i co z tym fantem zrobic?
rogrog
chodzi o to, że miałem np. w sesji zmienną id, która przechowywała id użytkownika w bazie i przekazywałem zmienną id jako parametr mówiący o stronie do wyświetlenia. I nie wiem dlaczego, ale przy włączonym register_globals na serwerze się sypało (zawsze używałem $_SESSION i $_GET). Ale zostawiłem ten problem kiedy się okazało, że po zmianie nazwy jednej ze zmiennych tak, żeby nie powodowały one konfliktu wszystko działało jak należy.

a przykład wykorzystania tablicy do takiego czegoś -> szukaj
miszqa
ja podejrzewam ze to rodzaje zmiennych sie klocili, bo wyciagalem za duzo wiadomosci i system chyba gloopial ale stwierdzilem ze czesc jest nie potrzebna i powywaleniu zbednych rzeczy wszystko wrocilo do normy
thx for all
chyba ze byla jakas inna przyczyna wiec z checia sie doksztalce

pozdrawiam z krainy bialych niedzwiedzi -> suwalk (www.suwalki.mwg.pl)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.