Kdo poradí se session na webzdarma ?
9 příspěvků
Archiv diskusního fóra
Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.
-
Poradí mi prosím někdo ? Nevím proč mi nejede Session na webzdarma. Co dělám špatně nebo co mi tam chybí, aby ve 2. skriptu byla vidět proměnná z 1. skriptu ? Tady jsou vzory dvou zkušebních skriptů. 1. skript <?php session_start(); $_SESSION["name"]="abcd"; print '$_SESSION["name"]='.$_SESSION["name"]; print '<br>'; print '<a href="test2.php">dalsi strana</a><br>'; ?> 2.skript <?php print '$_SESSION["name"]='.$_SESSION["name"]; print '<br>'; ?> 1. skript vytiskne: $_SESSION["name"]=abcd dalsi strana Ale 2. skript po volbě dalsi strana vytiskne jen: $_SESSION["name"]= a v adresovém řádku je adresa : http://xxxxxx.prodejce.cz/test2.php?PHPSESSID=9251c81c9bef746c3bd92d89e3002f2e "xxxxxx" je jen fiktivní adresa
-
<HTML>Ve 2. skriptu také musí být <code>session_start();</code></HTML>
-
Díky za odpověď. Jestli to správně chápu, tak musím potom každý skript, ve kterém chci vidět hodnoty v Session, na začátku mít session_start() ? Na localhostu mi to nejelo, ale upravil jsem to v php.ini pomocí nastavení autostartů session a asi to bude tedy to jádro pudla.
-
Ještě bych si dovolil přidat otázku. Co se stane, když někde ve skriptu bude omylem za sebou dvakrát session_start() ? Přebere se to tam nějak samo nebo je to už chyba ? Jedná se mi o případy, kde se vkládá jeden skript do druhého a omylem bych tam napsal také to session_start() vlastně navíc.
-
Skript ohlásí chybu, že funkce již byla volána. Stačí ji však potlačit zápisem @session_start();
-
Dík, tak to ošetřím pro jistotu zavináčem. Chyba tedy vlastně nevznikne, jen hlášení o ni a to bude potlačeno.
-
honza: "Chyba tedy vlastně nevznikne, jen hlášení o ni a to bude potlačeno." Meleš kraviny! Chyba vznikne, dokonce vznikne i to chybové hlášení. Jenom nebude posláno na výstup. Zavináč nepoužívat - je to zlo...
-
Tady by slo pouziti zavinace mozna nahradit if(!isset($_SESSION)) session_start(); ___ Je to ale jenom má domnenka, nejsem si jisty, jeslit $_SESSION neni nahodou nastaveno (a pouze prazdne), i pokud session neni aktivni...
-
No tak aby nebyly pochybnosti, tak jsem to tedy vyzkoušel. Jak je vidět, vícenásobné volání session_start() mu nevadí, takže ošetřování není potřeba. Nevím, kde jsem vzal, že to ohlásí chybu. Možná to bylo kdysi dávno, kdy jsem prováděl všemožné includování a sesssionování. Možná přelud. Ale správně by se měl session_start volat pouze jednou. Takže vícenásobnému voláni se raději vyhnout. To znamená, vědět odkud kam všechno se volá session. Freezovo ošetření funguje. S session_start vrací isset($_SESSION) hodnotu 1 (true). Bez startu nic (false).