Autor Zpráva
suvel
Profil
Zkouším se orientovat v sessions, ale aby mi to šlo rychleji, moc bych prosil o vysvětlení:

<?
session_start();
....
$_SESSION['t'] = $test;
?>
<a href=druhy_script.php>jdi</a>

Potud vše dobře - ve druhem scriptu mám v $_SESSION['t'] hodnotu proměnné $test. Ale když v prohlížeči vypnu cookies, proměnná se mi nepředá - do odkazu musím doplnit SID:

<a href=druhy_script.php?<? echo SID ?>>jdi</a>

a pak teprve se proměnná předává.

Myslel jsem si, že php samo otestuje, jestli má prohlížeč zapnuté cookies a když ne, samo si předá SID v hlavičce. Jestli ne (a vypadá to, že ne), tak to musím kvůli případně vypnutým cookies doplnit SID do všech odkazů? A při výstupu z <form> předávat přes <input type=hidden>?

A omlouvám se, jestli je ten dotaz primitivní - ale nikde jsem na tohle konkrétní odpověď nenašel. Dík.
radas
Profil *
a je v tom druhém souboru taky spuštěna session?
session_start(); 
suvel
Profil
Jasně že je.
Jozin
Profil *
Ahoj,
toto jsem sám testoval na svém virtuálním serveru a samo mi to SID poslalo... myslím, že na free hostinzích to nefunguje kvůli nastavení serveru. Už je to dávno co jsem se v tom rýpal, ale myslím, že tam ta možnost je. Mimo jiné, session jsem přestal používat kvůli těm cookies. Vytvořil jsem si vlastní. Prostě takový scriptík, který po příchodu si do databáze zapíše IP a při průchodu do druhé buňky v tabulce dává proměnné a jeho hodnoty, které následně po přečtení smaže. Nebylo by lehčí si udělat svůj systém? ;)

P.S.: Jen návrh.

Jozin.
suvel
Profil
Vyřešeno, na hostingu nebylo předávání SID povoleno.

Pro ty, kteří občas tápou jako já, uvádím ty nejzákladnější informace o $_SESSION (jestli se mýlím, opravte mě):

1) Každý, kdo přistupuje ke scriptu, který používá sessions, "dostane" jedinečnou kombinaci čísel a písmen, takzvané SID. To znamená, že i hodnoty proměnných v session jsou pro něj jedinečné.

2) Je-li na hostingu povoleno předávání SID v hlavičce, není třeba se vůbec o nic starat - SID se automaticky předává buď přes cookies (má-li je uživatel v prohlížeči povoleny) nebo v hlavičce. Není-li předávání povoleno, nezbývá, než je do hlaviček doplňovat a při odesílání z formuláře předávat jako <input type=hidden>.

3) session_start(); je nutné mít hned na začátku každého scriptu, tedy vždy před tím, než se cokoli odesílá či vypisuje.

4) Ještě jednu velkou výhodu mají sessions - mezi scripty můžeme bez problému předávat i pole.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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