Nie nie session_start() mam ustawione na początku skryptu także sesja jest włączona i działa bez zarzutu ale chodzi o to że jak wyrejestruje tylko ta jedna zmienna - bo mam ich kilka - to sesja nadal działa ale już nie mogę ponownie zarejestrować tej zmiennej.
potrzebuję tego ponieważ mam coś takiego:
if (!isset($_SESSION['guestNr'])) {
$_SESSION['guestNr'] = $result[0]['id_goscie'];
$result_tmp = $dbase->get_query("
SELECT * FROM goscie_tymczas
WHERE id_goscia = '".$_SESSION['guestNr']."'
");
if ($result_tmp)
{
foreach ($result_tmp as $record_tmp)
{
if($record_tmp['ses_id'] != $_SESSION['ses_id'])
{
$dbase->query("
UPDATE goscie_tymczas
SET ses_id = ".$_SESSION['ses_id']."
WHERE id_goscia = ".$record_tmp['id_goscia']."
");
}
}
}
else
{
$dbase->query("
INSERT INTO goscie_tymczas
(id_goscia, ses_id)
VALUES (
'".$_SESSION['guestNr']."',
'".$_SESSION['ses_id']."'
)
");
}
if (isset($_SESSION['guestNr'])) {
$result_tmp = $dbase->get_query("
SELECT * FROM goscie_tymczas
WHERE date_added < NOW() - INTERVAL 5 MINUTE
");
if ($result_tmp)
{
foreach ($result_tmp as $record_tmp)
{
$dbase->query("
DELETE FROM goscie_tymczas
WHERE date_added = '".$record_tmp['date_added']."'
");
if ($_SESSION['guestNr'] == $record_tmp['id_goscia'])
{
unset($_SESSION['guestNr']); //wyrejestrowuje zmienna sesyjna }
}
}
}
mniej więcej wygląda to tak:
jeśli zmienna sesyjna $_SESSION['guestNr'] nie istnieje to mi ją tworzy a następnie dodaje wpis do bazy. Gdy istnieje to - jeśli wpis jest starszy od obecnego czasu o 5 min - ma mi wykasować z bazy wartość przypisana zmiennej $_SESSION['guestNr'] - czyli jakiegoś gościa - a następnie wyrejestrować tą zmienna. Gdy gość odwiedzający stronę odświeży przeglądarkę po 5 minutach to znów skrypt powinien go dodać do bazy. Niestety jak wyrejestruję tą zmienną to po raz drugi nie mogę jej "zarejestrować". A nie chce niszczyć całej sesji a jedynie tą jedna zmienna.