![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 24.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Robię sobie logowanie z wykorzystaniem Cookies. Działa to tak, że jeżeli nie istnieje $_COOKIE['login'] skrypt wyświetla panel logowania, jednak jeżeli to ciacho istnieje wyświetlone zostają dane "zalogowany jako" itd. Jednocześnie chcę zrobić, aby jeżeli istnieje to ciasteczko powstały dwie nowe zmienne sesji. $_SESSION['zalogowano'], oraz $_SESSION['login']. Kod wygląda tak:
Kod if(isset($_COOKIE['login'])) { $_SESSION['zalogowano'] = True; $_SESSION['login'] = $_COOKIE['login']; Teoretycznie wszystko jest ok, gdy na stronie wyechuję te dwie zmienne wszystko działa. Jednak gdy wyłączę przeglądarkę, a po włączeniu wejdę na stronę to jestem zalogowany, te dwie zmienne istnieją, jednak gdy wejdę do innego pliku skrypt gubi te zmienne. Zaczynają działać dopiero, gdy "przepuszczę" skrypt przez jakiś inny plik. Np wchodzę do pliku home.php, tutaj te zmienne działają, wchodzę do skomentuj.php - zmienne nie działają. Lecz jeżeli przed wejściem do skomentuj.php "przejdę" przez plik news.php, a dopiero stąd do skomentuj.php obie zmienne działają. Co może być przyczyną ? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 28 Pomógł: 0 Dołączył: 8.02.2007 Ostrzeżenie: (0%) ![]() ![]() |
session_start() jest na początku każdego pliku. Najbardziej dziwne jest, że po przejściu do jakiegokolwiek pliku "gubi" sesję, dopiero po przejściu do jeszcze innego pliku tą sesję odnajduje. Dzieje się tak tylko przy wywoływaniu $_SESSION z $_COOKIE Mam nadzieję, że wywaliłeś wszystkie session_start() z tej funkcji logującej? Jak wywołujesz tą funkcję w pliku x, ważne aby w nim na początku było session_start() wywołane. U mnie generalnie zawsze wszystko kręci się w index.php, wystarczy mi więc wywołać session_start() tylko na początku skryptu index.php. Nie ważne ile plików z klasami/funkcjami itd dołączam tam, dopóki wszystko robi się w indexie będzie ok (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Nie wiem jak to jest rozwiązane u Ciebie, ale zachęcam do takiego podejścia. ja mam tak: poczatek pliku: Kod session_start(); ob_start(); koinec: Kod ob_flush(); stronke masz u siebie w domu czy jakis hosting darmowy? mi na paru hostingach gubilo $_SESSION i $_COOKIE Z tego co pamiętam miałem kiedyś problem z sesjami przez ob_start - zmieniało mi SIDy, po wywaleniu obów było już ok, nie wiem jakie jest rozwiązanie na to bo nie miałem czasu szukać wtedy - może ktoś wie czemu sesje i oby się kłucą? I jak to obejść. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 4.10.2025 - 11:22 |