[PHP] Zmienna w sesji, Gdzie się podziewa zmienna sesyjna? |
[PHP] Zmienna w sesji, Gdzie się podziewa zmienna sesyjna? |
30.01.2009, 02:22:27
Post
#1
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 24.08.2008 Ostrzeżenie: (0%) |
Hej.
Ja pewnie z błahą sprawą. Mam problem ze zmienną sesyjną. Mianowicie muszę przetłumaczyć stronkę z samochodami na kilka języków. Samochody są podzielone na grupy(różne strony). Każda strona zaczyna się od poniższego kodu: Kod <?PHP session_register(); if (!isset($_SESSION['jezyk'])) { // jeśli zmienna nie jest zarejestrowana $_SESSION['jezyk'] ='polski'; // przypisz wartość } $jezyk2=$_SESSION['jezyk']; // dla wygody ?> Na stronie znajdują się flagi, po kliknięciu których zmienia się język na stronie. Dzieje się to za pomocą: Kod <?php session_register(); $_SESSION['jezyk'] ='angielski'; // przypisz wartość include('index.php'); ?> Jak widać ani długie ani skomplikowane. Dla mnie jednak owszem . Po wybraniu języka na stronie zmienia się co trzeba. Jednak jeśli wybiorę język angielski a następnie kliknę na link do innej kategorii samochodów (strony są identyczne), to język ponownie powraca do wartości 'polski'. I tu pojawia się mój problem. Co zrobić żeby strona zapamiętywała ostatnio wybrany język? Dlaczego po każdej zmianie kategorii język wraca do języka polskiego? Z góry dzięki wielkie dla MĄDRYCH ludzi za wsparcie Pozdrowionka // poprawiłem tytuł bo go zwyczajnie nie podałeś // proszę, pamiętaj o tym w przyszłości // ayeo |
|
|
30.01.2009, 02:52:01
Post
#2
|
|
Grupa: Zarejestrowani Postów: 296 Pomógł: 32 Dołączył: 3.01.2005 Ostrzeżenie: (0%) |
a masz na stronach session_start(); ?
-------------------- |
|
|
30.01.2009, 03:37:51
Post
#3
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 24.08.2008 Ostrzeżenie: (0%) |
A to nie to samo przypadkiem? Z tego co wiem to bardzo zbliżone funkcje. session_start() używałem, ale po zmianie kategorii wyskakiwał mi komunikat że sesja już była nawiązana i zignorowano próbę ponownego jej nawiązania. Więc zmieniłem. Ale mogę być w błędzie!!!
|
|
|
30.01.2009, 03:57:37
Post
#4
|
|
Grupa: Zarejestrowani Postów: 286 Pomógł: 70 Dołączył: 13.01.2009 Ostrzeżenie: (0%) |
Cytat wyskakiwał mi komunikat że sesja już była nawiązana i zignorowano próbę ponownego jej nawiązania. Żeby zignorować ten komunikat użyj:
Więcej na temat error_reporting() http://php.net.pl/manual/pl/function.error-reporting.php |
|
|
30.01.2009, 07:01:34
Post
#5
|
|
Grupa: Zarejestrowani Postów: 240 Pomógł: 17 Dołączył: 28.12.2005 Skąd: Warszawa Ostrzeżenie: (0%) |
Cytat z manuala "session_register — Zarejestruj jedną lub więcej zmiennych globalnych w bieżącej sesji"
czyli za każdym razem starasz się zainicjować nową sesję poprzez przypisanie wartości daj session_start(); na początku i powinno być ok. Ten post edytował Chrom 30.01.2009, 07:02:13 |
|
|
30.01.2009, 08:27:07
Post
#6
|
|
Grupa: Zarejestrowani Postów: 171 Pomógł: 32 Dołączył: 5.08.2008 Skąd: Lublin Ostrzeżenie: (0%) |
session_start(); na początku skryptu w każdej podstronie + sprawdzenie linków w skrypcie.
Jeżeli masz kodowanie UTF8 na stronie to upewnij się (np. za pomocą notepad++) czy nie wysyłasz tzw. BOM. To jest najczęstrzy problem przy sesjach przy tym kodowaniu. Nigdy nie musiałem używać error_reporting(E_ALL ^E_NOTICE); Pozdrawiam -------------------- ---------------------------
"Jeżeli trzeci dzień z rzędu nie chce Ci się pracować tzn że dziś jest ŚRODA ! Algorytmy , Programowanie , Tworzenie WWW - SPRAWDŹ |
|
|
30.01.2009, 11:44:40
Post
#7
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 24.08.2008 Ostrzeżenie: (0%) |
Kurcze to forum jest niesamowite!!!!!!!
Nie wiem po raz który uzyskałem tu pomoc. Jak zwykle 1-2 drobne zmiany w kodzie i wszystko działa. LUDZIE JESTEŚCIE NIESAMOWICI!!!!! Są w tym kraju jeszcze Życzliwi ludzie Z góry jeszcze raz dzięki wszystkim |
|
|
Wersja Lo-Fi | Aktualny czas: 26.04.2024 - 07:55 |