Autor | Zpráva | ||
---|---|---|---|
trossketosxsnowleopard Profil * |
Dobrý den,
mám problém se sessions u domén třetího řádu (Český hosting) i na localu, na doméně druhého řádu vše funguje správně. Jedná se o změnu jazyka, jehož nastavení se ukládá do sessions. PHP vypisuje chyby: Notice: Undefined variable: _SESSION in /Users/Filda/Sites/Fahrschule/code/include/main.php on line 3 Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /Users/Filda/Sites/Fahrschule/code/include/main.php:3) in /Users/Filda/Sites/Fahrschule/code/include/main.php on line 4 Warning: Cannot modify header information - headers already sent by (output started at /Users/Filda/Sites/Fahrschule/code/include/main.php:3) in /Users/Filda/Sites/Fahrschule/code/include/main.php on line 7 Notice: Undefined index: jazyk in /Users/Filda/Sites/Fahrschule/code/include/main.php on line 9 Notice: A session had already been started - ignoring session_start() in /Users/Filda/Sites/Fahrschule/code/include/main.php on line 59 Obsah souboru main.php (utf-8): <?php if ($_SESSION["jazyk"]=='') { session_start(); session_register("jazyk"); $_SESSION["jazyk"] = 2; header("Location: index.php"); } $jazyk = $_GET["jazyk"]; if ($jazyk=='cs') { session_register("jazyk"); $_SESSION["jazyk"] = 1; header("Location: index.php"); } if ($jazyk=='de') { session_register("jazyk"); $_SESSION["jazyk"] = 2; header("Location: index.php"); } ?> .. vždy se vytvoří smyčka a načítání stránky se zastaví. Nevíte někdo prosím co s tím? Díky! Moderátor Joker: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na
![]() |
||
AM_ Profil |
#2 · Zasláno: 15. 2. 2010, 17:05:24
session_start() patří na úplný začátek skriptu, startovat session až potom, co čteš z $_SESSION, je už trochu pozdě :)
funkce session_register() je zastaralá, v kombinaci s $_SESSION se nedoporučuje používat <?php session_start(); //sem to patri a nikam jinam... kazde dalsi volani vyvola chybu na urovni E_NOTICE if (empty($_SESSION['jazyk'])) { //empty je lepsi, protoze nevyhodi chybu, pokud promenna 'jazyk' jeste neni zalozena // neni potreba, naopak sem nepatri: session_register("jazyk"); $_SESSION["jazyk"] = 2; header("Location: index.php"); die(); //po kazdem presmerovani je dobre zastavit vykonavani skriptu (programatory casto mate, ze po presmerovani pres header skript bezi dal, ikdyz vysledek uz v prohlizeci videt neni) } |
||
Joker Profil |
#3 · Zasláno: 15. 2. 2010, 17:06:19
trossketosxsnowleopard:
„Undefined variable: _SESSION“ Používáte $_SESSION dřív než session_start. „headers already sent“ Viz FAQ „Undefined index“ Pole neobsahuje index "jazyk" „A session had already been started“ Máte tam vícekrát session_start |
||
fuckin Profil |
#4 · Zasláno: 15. 2. 2010, 17:07:22
trossketosxsnowleopard:
„.. vždy se vytvoří smyčka a načítání stránky se zastaví.“ Když se vytvoří smyčka, pak načítání musí být nekonečné. Máš nějaký výstup před session_start(), proto ti to haže některé ty chyby. |
||
Časová prodleva: 16 dní
|
|||
trossketosxsnowleopard Profil * |
#5 · Zasláno: 3. 3. 2010, 23:47:48
Tak problém přetrvával i při přesunu webu na vlastní doménu, nakonec stačilo všechny header("Location: index.php"); smazat a znovu vložit.
Díky za rady! |
||
Časová prodleva: 13 let
|
0