Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z $_SESSION
Forum PHP.pl > Forum > Przedszkole
luku83
Witam,
na pewno na początku wszystkim wyda się to śmieszne, ale mam problem z sesją. Nie jest to mój pierwszy raz, zaznaczam na wstępie, kiedy korzystam z sesji i jak do tej pory wszystko zawsze ładnie pięknie działało. Oczywiście na początku każdego pliku stosuję:

session_start();

, zmienne przekazuję w postaci:

$_SESSION['zmienna']=$zmienna;

a na kolejnych stronach pobieram:

$zmienna=$_SESSION['zmienna'];

I niestety nie chce to zadziałać. Tzn. na pierwszej stronie, gdzie definiuję sesję i wywołuję ją do przetestowania, działa, natomiast po przejściu dalej gubi zmienne i nic nie wyświetla. Żeby było śmieszniej, problem ten występuje w Firefox, natomiast w Internet Explorer już nie. Ale żeby nie było za łatwo, nie wiem czy do końca jest to problem samej przeglądarki, bo uruchomiłem inną moją stronę, która obsługuje sesję i.. działa bez problemu w Firefox. Nadmienię, że wszystkie polecenia kopiowałem z mojej poprzeniej strony, więc nie ma mowy o błędzie typu literówka.

Czy ma ktoś pomysł o co może chodzić?
nospor
A jaki to ma związek z MYSQL?? Patrz proszę gdzie piszesz - przenosze.

wlacz wyswietlanie wszystkich bledow:
Temat: Jak poprawnie zada pytanie
Sephirus
Na pierwszy rzut oka coś jest na rzeczy z FF skoro tylko w nim jest ten problem... może nie akceptuje ciasteczek z tej strony itd... sprawdź jakie ciasteczka od tych stron z sesją wyświetli FF
jackussa
może uzywasz niezwiadomie trybu inCognito, tam sesja nie działa
Sephirus
Oj chyba działa smile.gif

(Tylko wszystko jest kasowane po zamknięciu przeglądarki)
luku83
Znalazłem następujące ciasteczka:

- _utma
- _utmz
- ResolutionParams
- PHPSESSID
jackussa
dana z sesji zawsze będziesz miał kasowane po wyłączeniu przeglądarki, zmień dane z sesji na cookie, to nie będą znikać (prz ustawieniu odpowiednio długiego TTL) ewentualnie mozesz miec też w przeglądarce ustawione żeby czyścił wszystkie dane po zamknięciu przeglądarki
luku83
No ok, ale z drugiej strony testuję 2 strony (obydwie sam zrobiłem) z tym samym kodem, na tym samym serwerze. Jedna działa w Firefox a druga nie. Gdzie tu jest jakaś logika?
jackussa
w takim razie muszą być jakieś różnice, jakiś błąd. masz raportowanie włączone i nic nie wyświetla? Może w którymś momencie nadpisujesz ta zmienną, tylko na ff nie działa?
luku83
Miałem i nie wyświetlił żadnych błędów. W sumie to by się zgadzało, bo w IE działa bezproblemowo.. Kiedy przekazuję $zmienna=$_SESSION['zmienna']; i sprawdzam co zawiera poprzez echo, nie ma nic sad.gif
mortus
Przede wszystkim pokaż kod. Jak kod będzie napisany dobrze, to wtedy można szukać przyczyny gdzieś indziej.
luku83
Zatem tak:

1. sesja startuje w tym miejscu:

  1. <?php
  2. session_start();
  3. ?>
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  5. <html xmlns="http://www.w3.org/1999/xhtml">
  6. <head>
  7. <meta http-equiv="Content-Language" content="FI" />
  8. <meta http-equiv="X-UA-Compatible" content="IE=7" />
  9. <meta name="author" content="" />
  10. <meta name="robots" content="index,follow,noodp" />
  11. <meta name="description" content="" />
  12. <meta name="keywords" content="" />
  13. <meta name="page-topic" content="" />
  14. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-2" />
  15.  
  16. </head>
  17. <?php
  18. $login=$_POST['login'];
  19. $haslo=$_POST['haslo'];
  20. $_SESSION['login']=$login;
  21. $_SESSION['haslo']=$haslo;


2. Natomiast w kolejnym pliku, gdzie przekazana jest sesja, nie ma nic:

  1. <?php
  2. session_start();
  3. ?>
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  5. <html xmlns="http://www.w3.org/1999/xhtml">
  6. <head>
  7. <meta http-equiv="Content-Language" content="FI" />
  8. <meta http-equiv="X-UA-Compatible" content="IE=7" />
  9. <meta name="author" content="" />
  10. <meta name="robots" content="index,follow,noodp" />
  11. <meta name="description" content="" />
  12. <meta name="keywords" content="" />
  13. <meta name="page-topic" content="" />
  14. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-2" />
  15.  
  16. </head>
  17. <?php
  18. $login=$_SESSION['login'];
  19. $haslo=$_SESSION['haslo'];


Więcej chyba nie trzeba?
nospor
MIales włączyc wyswietlanie wszystkich bledów. Napisałeś ze to zrobiłeś, ale tego nie zrobiłeś. Bo jakbyś to zrobił to przy tym zapisie:
$login = $_SESSION['login'];
miałbys bledy. W linku co ci podalem masz napisane jak to robić.
luku83
Miałem włączone, ale już wyłączyłem. Zresztą poniżej wstawiam, z raportowaniem, ale żadnych błędów nie wyświetlił.

1.
  1. <?php
  2. session_start();
  3. error_reporting(E_ALL);
  4. ini_set('display_errors','1');
  5. ?>
  6. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  7. <html xmlns="http://www.w3.org/1999/xhtml">
  8. <head>
  9. <meta http-equiv="Content-Language" content="FI" />
  10. <meta http-equiv="X-UA-Compatible" content="IE=7" />
  11. <meta name="author" content="" />
  12. <meta name="robots" content="index,follow,noodp" />
  13. <meta name="description" content="" />
  14. <meta name="keywords" content="" />
  15. <meta name="page-topic" content="" />
  16. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-2" />
  17. </head>
  18. <?php
  19. $login=$_POST['login'];
  20. $haslo=$_POST['haslo'];
  21. $_SESSION['login']=$login;
  22. $_SESSION['haslo']=$haslo;


2.
  1. <?php
  2. session_start();
  3. error_reporting(E_ALL);
  4. ini_set('display_errors','1');
  5. ?>
  6. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  7. <html xmlns="http://www.w3.org/1999/xhtml">
  8. <head>
  9. <meta http-equiv="Content-Language" content="FI" />
  10. <meta http-equiv="X-UA-Compatible" content="IE=7" />
  11. <meta name="author" content="" />
  12. <meta name="robots" content="index,follow,noodp" />
  13. <meta name="description" content="" />
  14. <meta name="keywords" content="" />
  15. <meta name="page-topic" content="" />
  16. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-2" />
  17. </head>
  18. <?php
  19. $login=$_SESSION['login'];
  20. $haslo=$_SESSION['haslo'];
nospor
error_reporting(E_ALL);
ini_set('display_errors','1');
Daj to przed session_start() smile.gif

oraz:
  1. <?php
  2. $login=$_POST['login'];
  3. $haslo=$_POST['haslo'];
  4. $_SESSION['login']=$login;
  5. $_SESSION['haslo']=$haslo;
  6. print_r($_SESSION);

co zwraca?
luku83
Na stronie 1.:

Array ( [login] => lechu [haslo] => lechu )

Na stronie 2.:

Array ( [login] => [haslo] => )
nospor
Czyli sesja zawiera indeksy ale bez wartosci.

1) To na pewno jest cały kod?
2) Nie masz przypadkiem włączonej opcji register_globals? Jesli tak to ją wyłącz.
luku83
1) Kod jest dużo dłuższy, ale jeśli chodzi o sesję, to są tylko te linijki.
2) Nie mam włączonego register_globals - mało tego, przed chwilą włączyłem, to w ogóle mi wszystko wysypało i nie mogłem włączyć wcale strony
nospor
Nie kazałem ci włączać tylko wyłączać.

Cytat
Kod jest dużo dłuższy, ale jeśli chodzi o sesję, to są tylko te linijki.
Pokaz jednak cały kod. Bo to nie możliwe by wartosci w sesji same z siebie znikały
luku83
1.
  1. <?php
  2. error_reporting(E_ALL);
  3. ini_set('display_errors','1');
  4. session_start();
  5. ?>
  6. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  7. <html xmlns="http://www.w3.org/1999/xhtml">
  8. <head>
  9. <meta http-equiv="Content-Language" content="FI" />
  10. <meta http-equiv="X-UA-Compatible" content="IE=7" />
  11. <meta name="author" content="" />
  12. <meta name="robots" content="index,follow,noodp" />
  13. <meta name="description" content="" />
  14. <meta name="keywords" content="" />
  15. <meta name="page-topic" content="" />
  16. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-2" />
  17.  
  18. <script type="text/javascript" src="jquery.min.js"></script>
  19. <script type="text/javascript">if (!window.jQuery) {document.write(unescape('%3Cscript type="text/javascript" src="jquery-1.7.1.min.js" %3E%3C/script%3E'));}</script>
  20. <script type="text/javascript" src="jquery2-ui.min.js"></script>
  21. <script type="text/javascript">if (!window.jQuery.ui) {document.write(unescape('%3Cscript type="text/javascript" src="jquery-ui.min.js" %3E%3C/script%3E'));}</script>
  22. <link rel="stylesheet" type="text/css" href="style.css" />
  23. <link rel="stylesheet" type="text/css" href="style2.css" />
  24. <link rel="stylesheet" type="text/css" href="style3.css" />
  25.  
  26. <script type="text/javascript" src="plik.js"></script>
  27.  
  28. </head>
  29. <?php
  30. $login=$_POST['login'];
  31. $haslo=$_POST['haslo'];
  32. $_SESSION['login']=$login;
  33. $_SESSION['haslo']=$haslo;
  34. print_r($_SESSION);
  35.  
  36. $dbcon=mysql_connect ("", "", "");
  37. $dbsel=mysql_select_db ("", $dbcon);
  38.  
  39. $zaplog="select login, haslo, valid from motoautoosoba where login='$login' and haslo='$haslo'";
  40. $wyniklog=mysql_query ($zaplog, $dbcon);
  41. $ilelog=mysql_num_rows ($wyniklog);
  42. ?>
  43.  
  44. <div id="all">
  45. <div id="docu"></div>
  46.  
  47. <div class="container">
  48.  
  49.  
  50.  
  51. <div class="theme-container">
  52.  
  53.  
  54.  
  55. <div class="gridSpan12" id="topNavigation">
  56.  
  57. <div class="pageHeader gwp">
  58. <div class="headerBackground"> </div>
  59. <a href="http://www.new-age.com.pl/moto" class="headerLogo pl-PL"></a>
  60. <div class="headerTop">
  61. <object style="height: 154px; width: 275px"><param name="movie" value="http://www.youtube.com/v/CUOlc_j4rMA?version=3&feature=player_detailpage"><param name="allowFullScreen" value="true"><param name="allowScriptAccess" value="always"><embed src="http://www.youtube.com/v/CUOlc_j4rMA?version=3&feature=player_detailpage" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="275" height="154"></object>
  62.  
  63. <div class="verticals fontLegalSilent">
  64. <center><table border="0" width="300">
  65. <tr><td align="left">Serwis jest częścią</td></tr>
  66. </div>
  67. </div>
  68. <div class="headerNavigation fontMenuLinkNavi">
  69. <div id="home" class="navMenuItem floatLeft highlight">
  70. <a href="index.php" class="navLink highlightLink">Start</a>
  71.  
  72. </div>
  73. <div class="navSeparator floatLeft">
  74. <!---->
  75. </div>
  76. <div id="search" class="navMenuItem floatLeft">
  77. <a href="#" class="navLink">Szukaj</a>
  78. <div class="navSubMenu floatLeft hdn" id="sub_search">
  79. <!---->
  80.  
  81. <a href="#" id="search-usedcars">
  82. Używane<br />i nowe
  83. </a>
  84. <a href="#" id="search-newcars">Nowe</a>
  85. <a href="#" id="search-customer">Dealerzy</a>
  86. </div>
  87. </div>
  88. <div class="navSeparator floatLeft">
  89.  
  90. <!---->
  91. </div>
  92. <div id="autosell" class="navMenuItem floatLeft">
  93. <a href="dodogl.php" class="navLink">Dodaj bezpłatne ogłoszenie</a>
  94.  
  95. </div>
  96. <div class="navSeparator floatLeft">
  97. <!---->
  98. </div>
  99. <div id="information" class="navMenuItem floatLeft">
  100. <?php
  101. if (($login<>'') && ($haslo<>''))
  102. {
  103. ?>
  104. <a href="menu2.php" class="navLink">Moje konto</a>
  105. <div class="navSubMenu floatLeft hdn" id="sub_information">
  106. <!---->
  107.  
  108. <div class="navSubMenuColumn">
  109. <a href="menu2.php" id="info-financing">Moje oferty</a>
  110. <a href="zakonczone.php" id="info-insurance">Oferty zakończone</a>
  111. <a href="wyloguj.php" id="info-leasing">Wyloguj</a>
  112. </div>
  113. </div>
  114. <?php
  115. }
  116. else
  117. {
  118. ?>
  119. <a href="logowanie.php" class="navLink">Moje konto</a>
  120. <div class="navSubMenu floatLeft hdn" id="sub_information">
  121. <!---->
  122.  
  123. <div class="navSubMenuColumn">
  124. <a href="logowanie.php" id="info-financing">Logowanie</a>
  125. <a href="rejestracja.php" id="info-insurance">Rejestracja</a>
  126. <a href="rejestracjad.php" id="info-leasing">Rejestracja dealerów</a>
  127. </div>
  128. </div>
  129. <?php
  130. }
  131. ?>
  132. </div>
  133. <div class="navSeparator floatLeft">
  134.  
  135. <!---->
  136. </div>
  137. </div>
  138. </div>
  139. </div>
  140.  
  141. <?php
  142. $mojeo="select nr_o, marka, model, cena, waluta, data_k, promocja from motoautodane inner join motoautoosoba using (nr_o) where login='$login' order by data desc, idmotoautodane desc";
  143. $wynikmojeo=mysql_query ($mojeo, $dbcon);
  144. $iloscmojeo=mysql_num_rows($wynikmojeo);
  145.  
  146. $dzis=date("Y-m-d");
  147. $wazne = date("Y-m-d",(strtotime($dzis) - (60*60*24*14)));
  148. ?>
  149. <div class="content-area">
  150.  
  151. <div id="dodtop"> </div>
  152. <div class="tabs_con tabs_con_forms">
  153.  
  154. <div id="dod3center">
  155. <br />
  156. <div id="titleprom">
  157. <center><b>Moje oferty</b></center>
  158. <br />
  159. </div>
  160. <?php
  161. while ($k<$iloscmojeo)
  162. {
  163. $k++;
  164. $wierszmojeo=mysql_fetch_row($wynikmojeo);
  165.  
  166. $imgmojeo="select nazwa from motophotos where nr_o='$wierszmojeo[0]' order by idmotophotos asc limit 1";
  167. $wynikimgmojeo=mysql_query ($imgmojeo, $dbcon);
  168. $wierszimgmojeo=mysql_fetch_row($wynikimgmojeo);
  169.  
  170. if ($wierszmojeo[5]>$wazne)
  171. {
  172. if ($wierszmojeo[6]=='tak')
  173. {
  174. echo "<div id='wynikiprom'>";
  175. echo "<div id='wynikiimg'>";
  176. echo "<a href='mojeogloszenie.php?nr_o=".$wierszmojeo[0]."'><img src='/moto/photos/".$wierszimgmojeo[0]."' width='120' height='88'></a>";
  177. echo "</div>";
  178.  
  179. echo "<div id='wynikitekst'>";
  180. echo "<a href='mojeogloszenie.php?nr_o=".$wierszmojeo[0]."'><b>".$wierszmojeo[1]." ".$wierszmojeo[2]."</b></a><br />";
  181. echo "<b>Cena: ".$wierszmojeo[3]." ".$wierszmojeo[4]."</b>";
  182. echo "</div>";
  183.  
  184. echo "<div id='wynikitekstright'>";
  185. echo "<a href='edytuj.php?nr_o=".$wierszmojeo[0]."'>Edytuj</a>";
  186. echo "</div>";
  187. echo "</div>";
  188. echo "<br />";
  189. }
  190. else
  191. {
  192. echo "<div id='wynikinorm'>";
  193. echo "<div id='wynikiimg'>";
  194. echo "<a href='mojeogloszenie.php?nr_o=".$wierszmojeo[0]."'><img src='/moto/photos/".$wierszimgmojeo[0]."' width='120' height='88'></a>";
  195. echo "</div>";
  196.  
  197. echo "<div id='wynikitekst'>";
  198. echo "<a href='mojeogloszenie.php?nr_o=".$wierszmojeo[0]."'><b>".$wierszmojeo[1]." ".$wierszmojeo[2]."</b></a><br />";
  199. echo "<b>Cena: ".$wierszmojeo[3]." ".$wierszmojeo[4]."</b>";
  200. echo "</div>";
  201.  
  202. echo "<div id='wynikitekstright'>";
  203. echo "<a href='edytuj.php?nr_o=".$wierszmojeo[0]."'>Edytuj</a><br /><br />";
  204. echo "<a href='promuj.php?nr_o=".$wierszmojeo[0]."'>Promuj</a>";
  205. echo "</div>";
  206. echo "</div>";
  207. echo "<br />";
  208. }
  209. }
  210. else
  211. {
  212. }
  213. }
  214. ?>
  215.  
  216. </div>
  217. <div class="clearFix"></div>
  218.  
  219. </div>
  220.  
  221.  
  222.  
  223. <div id="dodbottom"> </div>
  224.  
  225. </div>
  226. </div>
  227. <?php
  228. }
  229. }
  230. ?>
  231. <div class="clear-both empty-clearing-element"></div>
  232.  
  233. </div>
  234.  
  235. <div class="footer-container">
  236.  
  237.  
  238.  
  239.  
  240. <div id="footer">
  241. <div class="footer-distance-30 nobrandday">&nbsp;</div>
  242. <div class="footer-bar">
  243.  
  244. <img src="/moto/images/kreska.png" width="822" height="7" alt="" border="0" />
  245. </div>
  246. <div class="footer-distance-30"></div>
  247. <div class="footer-wevi-about">
  248. <a href="#" target="_blank">O nas</a> | <a href="#" target="_blank">Sprzedawcy</a> | <a href="#" target="_blank">Informacje</a> | <a href="#">Kontakt</a> | <a href="#" target="_blank">Reklama</a>
  249.  
  250. </div>
  251.  
  252. <div class="footer-distance-17"></div>
  253.  
  254. <div class="footer-wevi-copy">
  255. &copy; Copyright 2012 by .
  256. </div>
  257. <div class="footer-distance-20"></div>
  258.  
  259. <div class="footer-wevi-socialbookmark">
  260. <div style="float:right;"><a href="#" class="socialbookmark" onclick="" rel="nofollow"><img src="i1-facebook.png" width="22" height="22" alt="Facebook" border="0" /></a><a href="#" class="socialbookmark" onclick="" rel="nofollow"><img src="i2-twitter.png" width="22" height="22" alt="Twitter" border="0" /></a><a href="#" class="socialbookmark" onclick="" rel="nofollow"><img src="i3-youtube.png" width="40" height="22" alt="Youtube" border="0" /></a></div>
  261.  
  262. <div style="float:right;" class="footer-wevi-remember">Szukaj nas również na:</div>
  263. <div style="clear:both;"></div>
  264. </div>
  265. <div style="clear:both;"></div>
  266. <div class="footer-distance-30"></div>
  267. </div>
  268.  
  269. </div>
  270.  
  271.  
  272. </div>
  273. </div>
  274. </body>
  275. </html>


2.
  1. <?php
  2. error_reporting(E_ALL);
  3. ini_set('display_errors','1');
  4. session_start();
  5. ?>
  6. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  7. <html xmlns="http://www.w3.org/1999/xhtml">
  8. <head>
  9. <meta http-equiv="Content-Language" content="FI" />
  10. <meta http-equiv="X-UA-Compatible" content="IE=7" />
  11. <meta name="author" content="" />
  12. <meta name="robots" content="index,follow,noodp" />
  13. <meta name="description" content="" />
  14. <meta name="keywords" content="" />
  15. <meta name="page-topic" content="" />
  16. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-2" />
  17.  
  18. <script type="text/javascript" src="jquery.min.js"></script>
  19. <script type="text/javascript">if (!window.jQuery) {document.write(unescape('%3Cscript type="text/javascript" src="jquery-1.7.1.min.js" %3E%3C/script%3E'));}</script>
  20. <script type="text/javascript" src="jquery2-ui.min.js"></script>
  21. <script type="text/javascript">if (!window.jQuery.ui) {document.write(unescape('%3Cscript type="text/javascript" src="jquery-ui.min.js" %3E%3C/script%3E'));}</script>
  22. <link rel="stylesheet" type="text/css" href="style.css" />
  23. <link rel="stylesheet" type="text/css" href="style2.css" />
  24. <link rel="stylesheet" type="text/css" href="style3.css" />
  25.  
  26. <script type="text/javascript" src="plik.js"></script>
  27.  
  28. </head>
  29. <?php
  30. $login=$_SESSION['login'];
  31. $haslo=$_SESSION['haslo'];
  32. print_r($_SESSION);
  33.  
  34. $dbcon=mysql_connect ("", "", "");
  35. $dbsel=mysql_select_db ("", $dbcon);
  36.  
  37. $zaplog="select login, haslo, valid from motoautoosoba where login='$login' and haslo='$haslo'";
  38. $wyniklog=mysql_query ($zaplog, $dbcon);
  39. $ilelog=mysql_num_rows ($wyniklog);
  40.  
  41. <div id="all">
  42. <div id="docu"></div>
  43.  
  44. <div class="container">
  45.  
  46.  
  47.  
  48. <div class="theme-container">
  49.  
  50.  
  51.  
  52. <div class="gridSpan12" id="topNavigation">
  53.  
  54. <div class="pageHeader gwp">
  55. <div class="headerBackground"> </div>
  56. <a href="http://www.new-age.com.pl/moto" class="headerLogo pl-PL"></a>
  57. <div class="headerTop">
  58. <object style="height: 154px; width: 275px"><param name="movie" value="http://www.youtube.com/v/CUOlc_j4rMA?version=3&feature=player_detailpage"><param name="allowFullScreen" value="true"><param name="allowScriptAccess" value="always"><embed src="http://www.youtube.com/v/CUOlc_j4rMA?version=3&feature=player_detailpage" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="275" height="154"></object>
  59.  
  60. <div class="verticals fontLegalSilent">
  61. <center><table border="0" width="300">
  62. <tr><td align="left">Serwis jest częścią</td></tr>
  63. </div>
  64. </div>
  65. <div class="headerNavigation fontMenuLinkNavi">
  66. <div id="home" class="navMenuItem floatLeft highlight">
  67. <a href="index.php" class="navLink highlightLink">Start</a>
  68.  
  69. </div>
  70. <div class="navSeparator floatLeft">
  71. <!---->
  72. </div>
  73. <div id="search" class="navMenuItem floatLeft">
  74. <a href="#" class="navLink">Szukaj</a>
  75. <div class="navSubMenu floatLeft hdn" id="sub_search">
  76. <!---->
  77.  
  78. <a href="#" id="search-usedcars">
  79. Używane<br />i nowe
  80. </a>
  81. <a href="#" id="search-newcars">Nowe</a>
  82. <a href="#" id="search-customer">Dealerzy</a>
  83. </div>
  84. </div>
  85. <div class="navSeparator floatLeft">
  86.  
  87. <!---->
  88. </div>
  89. <div id="autosell" class="navMenuItem floatLeft">
  90. <a href="dodogl.php" class="navLink">Dodaj bezpłatne ogłoszenie</a>
  91.  
  92. </div>
  93. <div class="navSeparator floatLeft">
  94. <!---->
  95. </div>
  96. <div id="information" class="navMenuItem floatLeft">
  97. <?php
  98. if (($login<>'') && ($haslo<>''))
  99. {
  100. ?>
  101. <a href="menu2.php" class="navLink">Moje konto</a>
  102. <div class="navSubMenu floatLeft hdn" id="sub_information">
  103. <!---->
  104.  
  105. <div class="navSubMenuColumn">
  106. <a href="menu2.php" id="info-financing">Moje oferty</a>
  107. <a href="zakonczone.php" id="info-insurance">Oferty zakończone</a>
  108. <a href="wyloguj.php" id="info-leasing">Wyloguj</a>
  109. </div>
  110. </div>
  111. <?php
  112. }
  113. else
  114. {
  115. ?>
  116. <a href="logowanie.php" class="navLink">Moje konto</a>
  117. <div class="navSubMenu floatLeft hdn" id="sub_information">
  118. <!---->
  119.  
  120. <div class="navSubMenuColumn">
  121. <a href="logowanie.php" id="info-financing">Logowanie</a>
  122. <a href="rejestracja.php" id="info-insurance">Rejestracja</a>
  123. <a href="rejestracjad.php" id="info-leasing">Rejestracja dealerów</a>
  124. </div>
  125. </div>
  126. <?php
  127. }
  128. ?>
  129. </div>
  130. <div class="navSeparator floatLeft">
  131.  
  132. <!---->
  133. </div>
  134. </div>
  135. </div>
  136. </div>
  137.  
  138. <?php
  139. $mojeo="select nr_o, marka, model, cena, waluta, data_k, promocja from motoautodane inner join motoautoosoba using (nr_o) where login='$login' order by idmotoautodane desc";
  140. $wynikmojeo=mysql_query ($mojeo, $dbcon);
  141. $iloscmojeo=mysql_num_rows($wynikmojeo);
  142.  
  143. $dzis=date("Y-m-d");
  144. $wazne = date("Y-m-d",(strtotime($dzis) - (60*60*24*14)));
  145. ?>
  146. <div class="content-area">
  147.  
  148. <div id="dodtop"> </div>
  149. <div class="tabs_con tabs_con_forms">
  150.  
  151. <div id="dod3center">
  152. <br />
  153. <div id="titleprom">
  154. <?php
  155. if ($iloscmojeo<1)
  156. {
  157. }
  158. else
  159. {
  160. echo "<center><b>Oferty zakończone</b></center>";
  161. }
  162. ?>
  163. <br />
  164. </div>
  165. <?php
  166. while ($k<$iloscmojeo)
  167. {
  168. $k++;
  169. $wierszmojeo=mysql_fetch_row($wynikmojeo);
  170.  
  171. $imgmojeo="select nazwa from motophotos where nr_o='$wierszmojeo[0]' order by idmotophotos asc limit 1";
  172. $wynikimgmojeo=mysql_query ($imgmojeo, $dbcon);
  173. $wierszimgmojeo=mysql_fetch_row($wynikimgmojeo);
  174.  
  175. if ($wierszmojeo[5]<$wazne)
  176. {
  177. echo "<div id='wynikinorm'>";
  178. echo "<div id='wynikiimg'>";
  179. echo "<a href='mojeogloszenie.php?nr_o=".$wierszmojeo[0]."'><img src='/moto/photos/".$wierszimgmojeo[0]."' width='120' height='88'></a>";
  180. echo "</div>";
  181.  
  182. echo "<div id='wynikitekst'>";
  183. echo "<a href='mojeogloszenie.php?nr_o=".$wierszmojeo[0]."'><b>".$wierszmojeo[1]." ".$wierszmojeo[2]."</b></a><br />";
  184. echo "<b>Cena: ".$wierszmojeo[3]." ".$wierszmojeo[4]."</b>";
  185. echo "</div>";
  186.  
  187. echo "<div id='wynikitekstright'>";
  188. echo "<a href='wznow.php?nr_o=".$wierszmojeo[0]."'>Wznów</a><br /><br />";
  189. echo "</div>";
  190. echo "</div>";
  191. echo "<br />";
  192. }
  193. else
  194. {
  195. }
  196. }
  197. ?>
  198. </div>
  199. <div class="clearFix"></div>
  200.  
  201. </div>
  202.  
  203.  
  204.  
  205. <div id="dodbottom"> </div>
  206.  
  207. </div>
  208. </div>
  209. <?php
  210. }
  211. }
  212. ?>
  213. <div class="clear-both empty-clearing-element"></div>
  214.  
  215. </div>
  216.  
  217. <div class="footer-container">
  218.  
  219.  
  220.  
  221.  
  222. <div id="footer">
  223. <div class="footer-distance-30 nobrandday">&nbsp;</div>
  224. <div class="footer-bar">
  225.  
  226. <img src="/moto/images/kreska.png" width="822" height="7" alt="" border="0" />
  227. </div>
  228. <div class="footer-distance-30"></div>
  229. <div class="footer-wevi-about">
  230. <a href="#" target="_blank">O nas</a> | <a href="#" target="_blank">Sprzedawcy</a> | <a href="#" target="_blank">Informacje</a> | <a href="#">Kontakt</a> | <a href="#" target="_blank">Reklama</a>
  231.  
  232. </div>
  233.  
  234. <div class="footer-distance-17"></div>
  235.  
  236. <div class="footer-wevi-copy">
  237. &copy; Copyright 2012 by .
  238. </div>
  239. <div class="footer-distance-20"></div>
  240.  
  241. <div class="footer-wevi-socialbookmark">
  242. <div style="float:right;"><a href="#" class="socialbookmark" onclick="" rel="nofollow"><img src="i1-facebook.png" width="22" height="22" alt="Facebook" border="0" /></a><a href="#" class="socialbookmark" onclick="" rel="nofollow"><img src="i2-twitter.png" width="22" height="22" alt="Twitter" border="0" /></a><a href="#" class="socialbookmark" onclick="" rel="nofollow"><img src="i3-youtube.png" width="40" height="22" alt="Youtube" border="0" /></a></div>
  243.  
  244. <div style="float:right;" class="footer-wevi-remember">Szukaj nas również na:</div>
  245. <div style="clear:both;"></div>
  246. </div>
  247. <div style="clear:both;"></div>
  248. <div class="footer-distance-30"></div>
  249. </div>
  250.  
  251. </div>
  252.  
  253.  
  254. </div>
  255. </div>
  256. </body>
  257. </html>



Naprawdę nikt nie ma żadnego pomysłu?
potreb
Sprawdź czy są wysyłane dane post a później zapisuj do sessji, tak to ci się nadpisuje pusta...
luku83
Dane są przesyłane do POST. Po pierwsze sprawdziłem i wyświetla to, co powinno być, a po drugie, gdyby nie były przesyłane, to nie byłoby możliwe zalogowanie się, a to akurat działa. Niestety nie przechodzi z danymi zapisanymi w sesji dalej.

Żeby było śmieszniej w tych samych plikach, które przesłałem wcześniej dodałem zmienną $test=1; i dopisałem ją do sesji. Na kolejnej stronie wartość została przekazana poprawnie! Zachęcony odkryciem zrobiłęm coś takiego:

  1. $a=$login;
  2. $b=$haslo;
  3. $_SESSION['a']=$a;
  4. $_SESSION['b']=$b;
  5. $test=1;
  6. $_SESSION['test']=$test;
  7. echo "Login: ".$_SESSION['a']." <br />";
  8. echo "Hasło: ".$_SESSION['b']." <br />";


a w drugim pliku:

  1. $test=$_SESSION['test'];
  2. $a=$_SESSION['a'];
  3. $b=$_SESSION['b'];
  4. echo "test: ".$test." <br>";
  5. echo "Login: ".$a." <br />";
  6. echo "Hasło: ".$b." <br />";


i wiecie co? Oczywiście poza $test nie zostało nic przekazane...
mortus
Przecież potreb napisał, co masz zrobić.
  1. if($_SERVER['REQUEST_METHOD'] == 'POST') { // jeśli zatwierdzono formularz to zrób to
  2. $login = $_POST['login'];
  3. $haslo = $_POST['haslo'];
  4. $_SESSION['login'] = $login;
  5. $_SESSION['haslo'] = $haslo;
  6. }

Swoją drogą dlaczego kłamiesz, że nie masz żadnych błędów, skoro gołym okiem widać dwa błędy-uwagi (E_NOTICE). Przy bezpośrednim wejściu na stronę (nie po zatwierdzeniu formularza) $_POST['login'] i $_POST['haslo'] są niezdefiniowane, a ty je później do sesji przepisujesz. Poza tym kody, które tutaj wkleiłeś mają po jednym błędzie, którego parser PHP nie przepuści, a wystarczyło skopiować i wkleić.
nospor
1) Przecież juz pokazywał, że dane z post idą prawidłowo.
2) Przecież widać, że kod z odbierem POST jest inny od kodu co zawiera formularz. Czytajcie wszystkie posty a nie po łebkach

Cytat
Żeby było śmieszniej w tych samych plikach, które przesłałem wcześniej dodałem zmienną $test=1; i dopisałem ją do sesji. Na kolejnej stronie wartość została przekazana poprawnie! Zachęcony odkryciem zrobiłęm coś takiego:
Odnoszę wrażenie, ze strona, w której przypisujesz dane do sesji jest odpalana kilkukrotnie. Przy którymś tam odpaleniu, gdy postem nic nie idzie, jest redirect, stąd możesz nie widzieć błędu o braku danych w post.
Skoro z palca wpisana wartosc w sesji zostaje, a wartości z posta nie, jest to jedyne słuszne wytłumaczenie smile.gif

w pliku z odbiorem danych z posta dodaj taki kod:
  1. file_put_contents('test.txt', 'test:'.print_r($_POST,true)."\n", FILE_APPEND);

Przejdź całą sciezkę od zalogowania, do utraty danych w sesji i napisz co zawiera plik test.txt
luku83
Po pierwsze: dziękuję bardzo za rozwiązanie - nareszcie działa!!!

Po drugie: nie kłamałem, a jeśli już czegoś faktycznie nie powiedziałem, to nieświadomie. Jak widzisz miałem dość błahy problem, a poziom mojej wiedzy jest dość mizerny, więc nie trzeba od razu tak ostro smile.gif

Temat zamknięty smile.gif
mortus
Cytat(nospor @ 1.02.2012, 14:16:02 ) *
1) Przecież juz pokazywał, że dane z post idą prawidłowo.
2) Przecież widać, że kod z odbierem POST jest inny od kodu co zawiera formularz. Czytajcie wszystkie posty a nie po łebkach

Przeczytałem wszystkie posty i przyjrzałem się skryptom, które autor tematu zamieścił. To, że kolega przesyła dane z formularza do tego akurat pliku (tutaj kod 1) nie oznacza, że nie odpala tego pliku również bezpośrednio np. przez odnośnik w menu, a wtedy nadpisuje zawartość $_SESSION pustymi wartościami. W tym cały czas tkwił problem - plik obsługujący logowanie, obsługuje również inne "akcje" użytkownika. No chyba do logowania tyle kodu PHP+HTML nie potrzeba smile.gif

@luku83: Przepraszam za to pomówienie o kłamstwie... Jednak błędy E_NOTICE być musiały, a w tym przypadku były/byłyby one bardzo istotne w rozwiązaniu problemu.

EDIT: Co za paskudny błąd ortograficzny mi się trafił.
nospor
Cytat
nie oznacza, że nie odpala tego pliku również bezpośrednio np. przez odnośnik w menu, a wtedy nadpisuje zawartość $_SESSION pustymi wartościami
Tak, ale wtedy miałby widoczne NOTICY i puste dane z post, o które go prosiłem. Skoro tego nie pokazywał, uznałem że kretynem nie jest i naprawdę tego nie widzi. Pozostawała wiec jedynie jedna możliwosc, którą opisałem w poprzednim poscie
Cytat
Odnoszę wrażenie, ze strona, w której przypisujesz dane do sesji jest odpalana kilkukrotnie. Przy którymś tam odpaleniu, gdy postem nic nie idzie, jest redirect, stąd możesz nie widzieć błędu o braku danych w post.

smile.gif
mortus
Cytat(nospor @ 1.02.2012, 15:18:45 ) *
Tak, ale wtedy miałby widoczne NOTICY i puste dane z post, o które go prosiłem. Skoro tego nie pokazywał, uznałem że kretynem nie jest i naprawdę tego nie widzi. Pozostawała wiec jedynie jedna możliwosc, którą opisałem w poprzednim poscie

smile.gif

No cóż, kolega o tych NOTICE-ach nie wspomniał... bywa smile.gif
Wobec powyższego faktu rzeczywiście jedyną opcją było niewłaściwe przekierowanie.

Dobra, kończmy ten off top. smile.gif
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.