Dobry den,
Mam problem pri praci se session na webzdarma. na jedne strance si takto:
session_start;
session_register('name');
$_SESSION['first_name'] = $name;
session_register('name2');
$_SESSION['first_name'] = $name2;
: dam do session jmeno a kdyz ho na nejake dalsi strance chci vybrat:
echo $_SESSION['name'];
echo $_SESSION['name2'];
: tak mi to nechce nic vypsat. (jedine co se mi podari je kdyz na druhe strance session znovu nastartuji session_start; tak mi to vypise ale s chybou ze jiz byla startovana na strance jine)
Nevim si rady prosim o pomoc - dekuji predem
Za prvé:
session_start je funkce, musíš tedy psát Session_Start(); se závorkami
Za druhé:
Když používáš "nový způsob", není už třeba session registrovat. Když poprvé použiješ $_SESSION['promenna'], sama se zaregistruje.
Za třetí:
Máš v tom asi zmatek! Na té druhé stránce chceš přistupovat k neexistující session.
A proto tady máš kratičký základní příklad:
prvni.php
<?php
Session_Start();
$_SESSION['promenna'] = 'nejaky_udaj: bla bla bla'; // sama se zaregistruje
?>
druha.php
<?php
Session_Start();
echo $_SESSION['promenna']; // a mame ho tady ;-)
// skript nam vypise "nejaky_udaj: bla bla bla"
?>
Zavorky jsem samozrejme pouzil akorat sem je sem jaksi zapomnel napsat.. Jinak koukam ze jsem to opravdu trochu zazmatkoval.. Ale uz jsem z toho celej nejak mimo.. mam to napsane presne jak si napsal(v teto strukture) a hazi mi to chybu
Warning: session_start(): Cannot send session cookie - headers already sent ........
To znamena, ze uz byla odeslana hlavicka dokumentu, session musi byt nastartovany ihned na zacatku dokumentu (uplne 1. radek - staci jen ten prikaz "sessino_start();", to ostatni muze pak byt kdekoliv), jinak ti to tu chybu hazet neprestane... - aspon podle me to tak je...
Scar
Diky moc - takova BANALNI CHYBKA :) O tom v dokumentaci nic nebylo a jelikoz to byl muj prvni pokus tak to takhle dopadlo.. Tak to ted startuji primo nahore v indexu a je to...
P.S.: Chybami se clovek uci :))
Dívej. Když se skript generuje, odesílají se http halvičky do té doby, než dojde k prvnímu výstupu. Výstupem se myslí nejčastěji funkce echo, print, a další nebo třeba jen prázdný znak před <?php.
Nejčastejšími chybami jsou právě umístění funkcí session_start() a headers() až za výstupem ze skriptu.
Když se ti vypisuje "warning: headers already sent", znamená to přesně to, že hlavičky již byly odeslány. Chybu ve skriptu potom hledej právě tam.
Zrádné může být, že když se ti povede udělat nějkou chybu ve skriptu před odesláním hlaviček, vypíše se chybové hlášení ( = výstup), a tím už hlavičky odeslat nelze. Chybu proto musíš někdy hledat ještě o pár řádků výše.