Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Sesje, jak prawidlowo uzywac sesji?
Ertai
post 10.07.2004, 15:51:11
Post #1





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 14.12.2003

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


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!!!!


--------------------
"Was that it?" - Ertai
Go to the top of the page
+Quote Post
invx
post 10.07.2004, 18:12:40
Post #2





Grupa: Zablokowani
Postów: 655
Pomógł: 0
Dołączył: 28.11.2003
Skąd: Zagórz

Ostrzeżenie: (80%)
XXXX-


pierwszy twoj kod linia 18 masz blad nie $HTTP_SESSION_VARSC tylko $HTTP_SESSION_VARS a najlepiej $_SESSION

Ten post edytował invx 10.07.2004, 19:08:39


--------------------
RCXcms
www.rcx.prv.pl
Pierwszy polski w pełni zintegrowany system portal
Go to the top of the page
+Quote Post
kicaj
post 10.07.2004, 18:52:35
Post #3





Grupa: Zarejestrowani
Postów: 1 640
Pomógł: 28
Dołączył: 13.02.2003
Skąd: Międzyrzecz/Poznań

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


"Cannot send session cookie - headers already sent..." wpisz to w wyszukiwarce i odpowiedz masz pewna...


--------------------
PHP Developer

"Nadmiar wiedzy jest równie szkodliwy jak jej brak" Émile Zola
Go to the top of the page
+Quote Post
Ertai
post 18.07.2004, 15:14:34
Post #4





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 14.12.2003

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


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!

Ten post edytował Ertai 18.07.2004, 15:36:34


--------------------
"Was that it?" - Ertai
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: 25.07.2025 - 01:53