![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 260 Pomógł: 34 Dołączył: 22.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
Mam problem odnosnie sesji... projekt wyglada mniej wiecej tak:
mam index.php do ktorego na wzaleznosci co mam w get includuje pliki w instrukcji switch, w switchu jest tez includowany plik do rejestracji w ktorym nie powinno byc session_start wszystkie sesje trzymam w bazie danych z wlasnym handlerem Plik index.php wygalda mnie wiecej tak wersja dzialajaca
No i teraz jesli session_start() wrzuce na sam poczatek to robi mi rekord w bazie ale bez zadnych wartosci.. jest samo session_id a przeciez dodalem do sesji 'is_login' Dlaczego tak sie dzieje.. i czy wogole nalezt w ten sposob pisac kod bo chyba nie.. ale nie wiem jak to rozwiazac bo nie dodaje zmiennych do sesji :/ Ten post edytował wiiir 25.04.2010, 16:29:52 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 43 Pomógł: 1 Dołączył: 17.02.2008 Skąd: Leszno Ostrzeżenie: (0%) ![]() ![]() |
session_start() zawsze na poczatku pliku
wiecej ci nie powiem do ciezko z twojego kodu i opisu wywnioskowac co chcesz osiagnac ![]() -------------------- >> strony internetowe - Leszno <<
>> skup samochodów osobowych << >> programy żużlowe << |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 172 Pomógł: 9 Dołączył: 13.02.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Hmmm z tego co widze to masz ustawionego handlera sesji zeby zapisywal sie w bazie, wiec:
Czy ktos jest zalogowany czy nie, czy zapiszesz jakies dane w sesji czy nie, dajac session_start() sesja sie tworzy tak czy siak. Gosc ktory wszedl na strone dostaje odpowiedni nr sesji, jesli nie zapiszesz zadnych zadnych w sesji, zapisze sie w bazie tylko sam nr sesji bez danych. Wiec to jest prawidlowe dzialanie. I tak jak napisal sebastiankozub session_start() dajemy zawsze na poczatku pliku. Jesli Ci nie zapisuje danych do sessji sprawdz tablice $_SESSION[], czy sa tam dane, ktore chciales zapisac. Byc moze handler nie dziala prawidlowo. Adrian Ten post edytował quality 26.04.2010, 07:58:02 -------------------- |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 159 Pomógł: 5 Dołączył: 31.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
Jeśli w plikach które dołączasz za pomocą require_once istnieje choćby spacja poza klamerkami <?php ?>, to sesja sie nie odpali.
Problem polega na tym że identyfikator sesji (np. $_COOKIE['PHPSESSID']) - to ciasteczko. Nie można zapisać ciasteczka jeśli wystąpił jakiś kod. Jest to spowodowane tym że PHP wysyła ciasteczko do zapisania w postaci nagłówka, a te muszą być wykonane na samym początku... -------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 260 Pomógł: 34 Dołączył: 22.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
Hmm chodzi o to ze w tym przykladzie podalem sesssion_start w klauzuli IF i wtedy sesje zaklada mi prawidowo, natomiast jesli napisze session_start tuz przed IF-em (oczywiscie pozniej wykonuje sie $_SESSION['is_login']=true itd... ) to do momentu odswiezenia strony jest tablica $_SESSION jest taka jaka podam i wszystko pieknie jest w bazie.. natomiast jesli przejde na strone glowna wartosci sie uzuwaja i jest tylko session_id w bazie...
oczywiscie w innych plikach jest session_start itd... handler jest raczej dobrze napisany.. testowalem kilka krotnie na prostych sktyptach... dziwne dla mnie jest to wlasnie ze jak jest session w IF-ie to dziala jak przed IF-em to juz nie dziala... przeciez IF i tak sie wykona prawidlowo.... :/ zna ktos odpowiedz dlaczego tak sie dzieje? |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 652 Pomógł: 47 Dołączył: 6.02.2010 Skąd: Radom Ostrzeżenie: (0%) ![]() ![]() |
Hmm chodzi o to ze w tym przykladzie podalem sesssion_start w klauzuli IF i wtedy sesje zaklada mi prawidowo, natomiast jesli napisze session_start tuz przed IF-em (oczywiscie pozniej wykonuje sie $_SESSION['is_login']=true itd... ) to do momentu odswiezenia strony jest tablica $_SESSION jest taka jaka podam i wszystko pieknie jest w bazie.. natomiast jesli przejde na strone glowna wartosci sie uzuwaja i jest tylko session_id w bazie... oczywiscie w innych plikach jest session_start itd... handler jest raczej dobrze napisany.. testowalem kilka krotnie na prostych sktyptach... dziwne dla mnie jest to wlasnie ze jak jest session w IF-ie to dziala jak przed IF-em to juz nie dziala... przeciez IF i tak sie wykona prawidlowo.... :/ zna ktos odpowiedz dlaczego tak sie dzieje? Mialem podobny problem , hmm sesje mi sie usuwaly po przejsciu/odswiezeniu ty masz to samo? moze sproboj ob_flush ob_start użyć czyli pod sesjami logowaniem daj ob_flush(); a w index.php daj |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 748 Pomógł: 388 Dołączył: 21.08.2009 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
wydaje mi się, że nie powinieneś z taką pewnością zakładać, że handler jest bezbłędnie napisany, teoretycznie nie powinno być różnicy czy session_start() jest przed warunkiem if czy za, więc przeanalizuj dokładniej swój handler
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 260 Pomógł: 34 Dołączył: 22.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
Mialem podobny problem , hmm sesje mi sie usuwaly po przejsciu/odswiezeniu ty masz to samo? moze sproboj ob_flush ob_start użyć czyli pod sesjami logowaniem daj ob_flush(); a w index.php daj ok wroce do domu to zobacze czyto zadziala sprawdze jeszcze raz handlera.. ale wydaje mi sie ze nie w nim lezy problem... |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 23:31 |