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
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
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
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.
trossketosxsnowleopard
Profil *
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!

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: