session starten und destroyen nur wenn...
kölir
- php
2
dedlfix
Hallo,
wie kann ich es bewerkstelligen, dass eine session nur gestartet wird, wenn noch nicht geschehen
geht das?
(!session_id() ? session_start() : '');
jemand bessere möglichkeiten?
kann ich das : '' einfach weglassen bei dem ternären?
und wie kann ich es bewerkstelligen, dass eine session nur destroyed wird, wenn keine daten mehr vorhanden sind?
geht das?
(sizeof($_SESSION)=0 ? session_destroy() : '');
jemand bessere möglichkeiten?
gruß
echo $begrüßung;
wie kann ich es bewerkstelligen, dass eine session nur gestartet wird, wenn noch nicht geschehen
Hier unterliegst du anscheinend einem Irrtum. session_start() ist in jedem Script nötig, das auf Session-Daten zugreifen möchte. Es eröffnet nicht nur komplett neue Sessions sondern öffnet auch bereits in vorhergehenden Scriptaufrufen erstellte Sessions.
(!session_id() ? session_start() : '');
jemand bessere möglichkeiten?
kann ich das : '' einfach weglassen bei dem ternären?
Nein. Der ternäre Operator ist auch nicht für solche Spielchen gedacht. if (bedingung) auszuführendes() ist nicht länger als der ternäre Operator mit überflüssigem else-Zweig.
und wie kann ich es bewerkstelligen, dass eine session nur destroyed wird, wenn keine daten mehr vorhanden sind?
session_destroy() macht etwas anderes als du dir möglicherweise vorstellst. Lies dazu bitte noch einmal die Handbuchseite und die dort anhängenden Nutzerkommentare.
jemand bessere möglichkeiten?
Um alle Session-Daten zu löschen kann man $_SESSION ein leeres Array zuweisen. Das Zerstören des Session-Cookies ist nicht zwingend erforderlich. Wenn die Session-Daten leer sind ist man abgemeldet. Wenn das Cookie noch die alte Session-ID enthält ist das nicht weiter tragisch.
echo "$verabschiedung $name";