Mam pewne dziwne problemy ze zmiennymi SESSION na moim koszyku zakupów online PHP/Ajax.
Kiedy po raz pierwszy wyświetlam stronę, SESJA jest tworzona i działa na stronie. Kiedy przejdę do innej strony PHP w tym samym katalogu, SESJA zostanie całkowicie utracona. Dziwne jest to, że dzieje się to tylko raz:. Gdy użytkownik przechodzi przez proces całkowitej utraty SESJI po zmianie strony, SESJA działa w całości na całym wózku.
Zacząłem osobiście wysyłać mailem dane o stanie zmiennym zarówno danych $ _SESSION, jak i $ _SERVER na każdym widoku strony. Wygląda na to, że po pierwszym wyświetleniu strony SESJA istnieje i zawiera dane. Jednak w zmiennej $ _SERVER ['HTTP_COOKIE'] nie ma generatora PHPSESSID. Po przejściu na inną stronę zostanie utworzony PHPSESSID i SESJA zacznie działać, ale początkowe dane SESJI z widoku pierwszej strony zostaną utracone.
Czy istnieje sposób na wygenerowanie PHPSESSID, jeśli nie został jeszcze wygenerowany dla SESJI? Czy jest to typowe zachowanie i jest nieistotne dla mojego losowego problemu utraty SESJI? Używam PHP 5.2.
Każda strona w koszyku rozpoczyna się dokładnie w ten sam sposób:
$title="Title";
$keywords="keywords";
$description="description";
@include('../header_cart.php');
a następnie w górnej części header_cart.php znajduje się:
session_start();
if(!isset($_SESSION['active'])){
$_SESSION['active']=$_SERVER['REMOTE_ADDR'];
}
Wszystkie rodzaje zabawy czytania [tutaj] (http://php.net/manual/en/function.session-id.php). Nie wiem, czy to już sprawdziłeś. Czy jesteś pewien, że 'session_start()' nie ulega awarii podczas pierwszego połączenia? – afuzzyllama
Każda strona w koszyku używa tego samego pliku nagłówkowego, więc nie sądzę, że to jest to. Być może użycie parametru session_regenerate_id(), jeśli nie ustawiono PHPSESSID, może pomóc. – unsunghero
Ale możesz stracić informacje o koszyku, ponieważ sesja się zmienia? =/ – afuzzyllama