Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sesje
Forum PHP.pl > Forum > Przedszkole
Ertai
Mam taki problem. Jest sobie strona z logowaniem napisana w php. Otrzymuje ona miedzy innymi zmienna $nick. Oto kod tej strony:
  1. <?php
  2. $db=mysql_pconnect (&#092;"localhost\", \"ertai_gra\", \"gra\") or die ('I cannot connect to the database because: '. mysql_error());
  3.  
  4. $kurwa=mysql_selectdb(&#092;"ertai_phpbb1\");
  5.  
  6. $nick=addslashes($nick);
  7.  
  8. $zapytanie=&#092;"select haslo from Daymio where nick='$nick'\";
  9.  
  10.  
  11.  
  12. $wynik=mysql_query($zapytanie) or die(mysql_error());
  13.  
  14. $wiersz = mysql_fetch_row($wynik);
  15.  
  16. $HTTP_SESSION_VARSC['nick']= $nick;
  17.  
  18. if ($wiersz[0] != $haslo) { echo &#092;"Nie prawidlowy login lub haslo\"; exit; }
  19. if ($wiersz[0] == $haslo) { include('zalogowany.html'); }
  20.  
  21.  
  22. ?>
teraz jezeli haslo jest poprawne to zalaczony jest plik zalogowany.html, ktory sklada sie z 3 ramek. Jedna z tych ramek jest plikie php ktora potrzebuje zmiennej $nick aby poprawnie dzialala... niestety zmienna nie jest przekazywana. Nie wiem dlaczego. Nie wiem czy zle zadeklarowalem sesje czy co sie stalo... niestety nie kombinowalem z tym bo na sesjach wogole sie nie znam i nie mam pojecia nawet jak to inaczej zrobic. Oto kod pliku zalogowany.html:
  1. <htm>
  2.  
  3. <meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
  4.  
  5. <title>kot tu był</title>
  6. </head>
  7.  
  8.  
  9. <frameset framespacing=0 frameborder=0 border=0 cols="19%,1*">
  10. <frame name=Ramka2 style='mso-linked-frame:auto' src="menu.html">
  11. <frameset rows="14%,1*">
  12. <frame name=Ramka4 style='mso-linked-frame:auto' scrolling=no src="statystyki.php">
  13. <frame name=Ramka1 style='mso-linked-frame:auto' scrolling=no src="glowna.html">
  14. <body lang=PL style='tab-interval:35.4pt'>
  15. <div class=Section1>
  16. <p class=MsoNormal>Na tej stronie są używane ramki, ale przeglądarka ich nie
  17. obsługuje.</p>
  18. </div>
  19. </body>
  20.  
  21. </html>
Oto kod pliku statystyki.php :
  1. <?php
  2.  
  3. echo $HTTP_SESSION_VARS['nick'];
  4.  
  5. $db=mysql_pconnect (&#092;"localhost\", \"ertai_gra\", \"gra\") or die ('I cannot connect to the database because: '. mysql_error());
  6.  
  7. $kurwa=mysql_selectdb(&#092;"ertai_phpbb1\");
  8.  
  9. $zapytanie=&#092;"select zloto from Daymio where nick='$nick'\";
  10. $wynik=mysql_query($zapytanie);
  11. $wiersz = mysql_fetch_row($wynik);
  12.  
  13. echo 'Zloto: '.$wiersz[0];
  14.  
  15. $zapytanie=&#092;"select honor from Daymio where nick='$nick'\";
  16. $wynik=mysql_query($zapytanie);
  17. $wiersz=mysql_fetch_row($wynik);
  18.  
  19. echo 'Honor: '.$wiersz[0];
  20.  
  21. $zapytanie=&#092;"select ludnosc_wolna from Daymio where nick='$nick'\";
  22. $wynik=mysql_query($zapytanie);
  23. $wiersz=mysql_fetch_row($wynik);
  24.  
  25. echo 'Ludnosc wolna: '.$wiersz[0];
  26.  
  27. $zapytanie=&#092;"select liczba_domow from Daymio where nick='$nick'\";
  28. $wynik=mysql_query($zapytanie);
  29. $wiersz=mysql_fetch_row($wynik);
  30.  
  31. echo 'Liczba domow: '.$wiersz[0];
  32.  
  33. $zapytanie=&#092;"select sila_tymczasowa from Daymio where nick='$nick'\";
  34. $wynik=mysql_query($zapytanie);
  35. $wiersz=mysql_fetch_row($wynik);
  36.  
  37. echo 'Obecna sila: '.$wiersz[0];
  38. ?>


Nie wiem czy jest mozliwe aby ta zmienna $nick zostala wogole przekazana. W kazdym razie blad jaki sie wyswietla jest nastepujacy: Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /home/ertai/public_html/GRA/statystyki.php:2) in /home/ertai/public_html/GRA/statystyki.php on line 3

Jezeli ktos chce zobaczyc to na zywo smile.gif to niech wejdzie na strone www.ertai.webd.pl/GRA nick=m haslo=m. Prosze o pomoc!!!!
invx
pierwszy twoj kod linia 18 masz blad nie $HTTP_SESSION_VARSC tylko $HTTP_SESSION_VARS a najlepiej $_SESSION
kicaj
"Cannot send session cookie - headers already sent..." wpisz to w wyszukiwarce i odpowiedz masz pewna...
Ertai
Co do bledu w kodzie to poprawilem i dalej nic a co do wyszukiwania to znalazlem cos takiego: post i tam jedna z odpowiedzi brzmi: php has a built in function for sending out HTML headers automatically when it encounters the first "echo" or "print" statement in a file. However if you echo out say the header of the document first, then try to mess with those headers (modifying cookie, redirecting the user, etc.) you will get the "headers already sent" error. You need to make sure that ALL of your sesson code, cookie code and other related code comes BEFORE any actual template or page display stuff. That should help you out some. Hope it helps.

Czyli jak dobrze rozumiem... a przyznam sie szczerze ze nie wiem czy dobrze rozumie session start i rejestrowanie zmiennych sesji ma byc przed wszystkim innym. Czy o to chodzi? HELP!!!

I drugie pytanie czy przy includzie tej strony wysylam te wszystkie naglowki wczesniej niz kod php session start? Bo jak tak to chyba przez to nie dziala bo na polskim forum znalazlem: post2 i odpowiedz tam jedna byla: moze jeszcze strone na ktorej masz inicjacje sesji includujesz do innej strony i wtedy naglowek zostaje wyslany przed session start().

Jak macie jakies pomysly to prosze piszcie!
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.