platnost SESSION

mám takovej problém, v přihlášení používám session, ale když několikrát kliknu na (různé) odkazy tak se session jakoby vymažou ale netuším proč... (při klikání na jeden a ten samý odkaz se session nevymažou)


session_start(); - mám na začátku skriptu
odkazy vypadají takhle:
<a href="<?=_SERVER;?>adm/index.php?pom=a&pomm=b&<?=SID;?>">odkaz</a>

nenapadá někoho, co dělám špatně?
cz.php.net/error_reporting

<? ... php
<? ... xml
<?php ... pouze php a funguje pak vzdy
<?= ... php
<?php echo ... php, opet funguje vzdy, i na starsim php a tam, kde neni povolene zkracovani syntaxe

predpokladam, ze error_reporting zahlasi chyby:
_SERVER
SID
jako nedefinovane konstanty
Co treba se podivat do HTML kodu, jestli je tam vse, jak ma byt?
Predpokladam, ze tam je:
<a href="adm/index.php?pom=a&pomm=b&">odkaz</a>
A neni tam to, co jsi tam chcel mit
no výpis těch proměnných je v pohodě(dokonce i když zakážu cookies)

akorát sem zapoměl že mi to nefunguje tady na wz, na lokale mam php5 a tam to běží bez problémů
<HTML>A nemůžou za to absolutní adresy nebo cache? Já vím, asi je to blbost. BTW, to SID je zbytečné ručně cpát do odkazu.</HTML>
Nípal (moderátor)
jeste je mozne pro SID pouzit transit_id, ktere to doplni samo. Ale to eje myslim na wz zakazane menit php.ini . Je to opatreni, kdyby mel clovek vyple cookies.
Souhlasim, ze ve vetsine pripadu to bude fungovat bez uvasedi session id.
2Nípal: nevím jestli to byla blbost, ale nepomohlo to:(

zatim to řešim pomocí setcookie, ale stejně by mě zajímalo kde je zahrabanej brouk...
Pokud vždy (!) na začátku skriptu spouštíš session_start() tak to prostě musí fungovat.
Napadají mě pouze 2 možnosti proč by to nejelo:
1) session_start() voláš (třeba i nevědomky) až po nějakém výstupu k uživateli, takže nefunguje - takže error_reprting nastav na E_ALL a podívej se jestli nehlásí nějakou chybu

2) hrál sis s PHP flagy skrz .htaccess a něco jsi zvoral (sice netuším co, ale nic lepšího mě nenapadá)
Podla mna je problem celkom jednoduchy, treba si pri session davat pozor na par veci. niekde si to session nastavil. napriklad:
$overenie="existuje";
$_SESSION['overenie']=$overenie;

avsak potom sa ti z premennej $overenie stala 0 a znova si nacital ten subor kde uz si napriklad nedeklarova $overenie tak je samozrejme ze sa ti vymaze aj session, preto vzdy ked deklarujes session daj si tam taku podmienku

if ($_SESSION['overenie']="") $_SESSION['overenie']=$overenie;

potom mas zarucene ze tam nebude 0 alebo nic, ostatne chyby su uvedene v inych prispevkoch...
spook (asd.webz.cz)
Mel by sis ujasnit, co vlastne mluvis. V celku nikoho nezajima, jak to bezi na lokale tobe. Podstatny je vysledek tam, kde to potrebujes mit spustene.

'
no výpis těch proměnných je v pohodě(dokonce i když zakážu cookies)
akorát sem zapoměl že mi to nefunguje tady na wz, na lokale mam php5 a tam to běží bez problémů
'
Takze tvrdis, ze na wz.cz, coz je soucasti tveho puvodniho dotazu, je vypis promennych v poradku nebo je tam to, co jsem napsal ja, cili, ze to v poradku neni?
viz Tom, zapni si error_reporting na E_ALL , cz.php.net/error_reporting
To vypisuje chyby PHP pripadne problem s promennou.

Zajimavy problem je sdruzeni globalnich promennych, viz goodstyle.sk .
Pri urcitem nastaveni PHP existuje finticka propojeni:
$aaa = $_POST['aaa'] = $_GET['aaa'] = $_SESSION['aaa']
zmenis jednu, zmeni se vsechny, coz mne osobne neni prijemne a jsem rad, ze to tu neni povolene.
Nehlede na to, jak uz jsem psal, zkracovani tu asi take neni povolene _SERVER, SID a pod
no me se to deje na mem webu taky a error_reporting(E_ALL) nenasel nic... akorat ze u me je to tak, ze z asi 7 hodnot co mam v session, zustanou nastavene jen 2... v ostatnich neni proste nic.... ale nejakou dobu tam jsou..nechapu to.. nikde si je neprepisuju na prazdne nebo jine
tak v tom pripade mas asi spatne session v souborech nebo mas nastavene globalni promenne. Tez se nekdy stava, ze se session ztraceji, ale uplne, ne castecne.
A jak jsem psal, zkontroluj si:
'
Pri urcitem nastaveni PHP existuje finticka propojeni:
$aaa = $_POST['aaa'] = $_GET['aaa'] = $_SESSION['aaa']
'
cili das hledat nazev ze session, zda neni nekde pouzit pro name ve formulari nebo pro odkaz nebo pro $nazev promennou. Pokud se to kryje, pak se tato hodnota prepisuje. Vyhledavani je obvykle na ctrl+f v editoru.