mam imieszczony sesid, czyli numer sesji w url, i jak przechodze na inną strone mojej strony to zmienne znikają, jak zrobić żeby zostały?
czy masz session_start() na początku każdej strony ?
tak mam
może kodu byś dał bo nikt nie jest jasnowidzem tutaj raczej
problem jest prosty zapewne masz register_globals wylaczone dlatego tez korzystaj ze zmiennej predefiniowanej $_SESSION jak chcesz uzyskac dostep do zmiennej sesyjnej.
przyklad:
skrypt1.php:
session_start();
$zmienna = "cos";
skrypt2.php:
session_start();
echo $_SESSION['zmienna'];
i ze wzgledu na bezpieczenstwo lepij jest uzywac zmiennych predefinowanych.
Maker napisał(a)
problem jest prosty zapewne masz register_globals wylaczone dlatego tez korzystaj ze zmiennej predefiniowanej $_SESSION jak chcesz uzyskac dostep do zmiennej sesyjnej.
przyklad:
skrypt1.php:
session_start();
$zmienna = "cos";
skrypt2.php:
session_start();
echo $_SESSION['zmienna'];
i ze wzgledu na bezpieczenstwo lepij jest uzywac zmiennych predefinowanych.
tyle że w pierwszym skrypcie nie "$zmienna = <cos>" tylko "$_SESSION['zmienna'] = <cos>"
a jak naprawdę chodzi o register_globals to sobie strzelę w łeb bo już nie wiem skąd ludzie to biorą - może by przykleić wątek żeby był bardzo widoczny o register_globals ?
no fakt powinno tam tez tak byc lekka omylka no ale chodzi o register_globals bo nimi wlaczonymi wszystki superglobalne staja sie dostepne jako normalne zmienne w skrypcie problem jest tego typu ze jezeli ta opcja bedzie wlaczona beda powstawaly konflikty bo np GET moze odbierac wartosc o nazwie 'data' a zmienna sesysja tez bedzie o nazwie 'data' i tak w tym samym momencie nie jestesmy pewni jakie jest zrodlo dla zmiennej $data a odnoszac sie do zmiennych predefiniowanych ta pewnosc mamy.