NetAktiv
Senior HTML'ler
Ich wollte bei neuen Sessions einen Counter initialisieren und den bei jedem Aufruf erhöhen. Ich meine, das hat mit dem Code unten früher geklappt. Nun aber wird bei jedem Aufruf eine neue Session erzeugt, die $_SESSION Variable liefert isset falsch. Dennoch enthält sie die nach dem Session Restart wieder die richtigen Werte. Ich nutze PHP 8.4.8 unter Windows 11 mit IIS. Der counter_2 wird erhöht, der counter_1 immer zurückgesetzt. Hat jemand eine Idee, wo da der Hase im Pfeffer liegt?
PHP:
<?php
$status = session_status();
if (($status != PHP_SESSION_ACTIVE) && (!isset($_SESSION)))
{
session_set_cookie_params(600);
session_start();
$_SESSION['status_text'] = "neue Session";
$_SESSION['status_code'] = $status;
$_SESSION['counter_1'] = 1;
$_SESSION['counter_2'] = (isset($_SESSION['counter_2'])) ? ++$_SESSION['counter_2'] : 1;
}
else
{
$_SESSION['status_text'] = "Update Session";
$_SESSION['status_code'] = $status;
++$_SESSION['counter_1'];
++$_SESSION['counter_2'];
}
$out = "<br>" . $_SESSION['status_text'] . ": [" . $_SESSION['status_code'] . "]";
$out .= ", counter_1 [" . $_SESSION['counter_1'] . "]";
$out .= ", counter_2 [" . $_SESSION['counter_2'] . "]";
echo $out;
?>