Moin!
Ich habe jetzt wie beschrieben die isset-Abfrage gemacht. Aber dann bekomme ich permanent das Anmeldeformular angezeigt. Zwar wird gesagt, dass die Session erstellt wurde, doch etwas anderes auch nicht. Das Formular bleibt angezeigt.
Das Problem konnte ich jetzt Lösen. Jedoch tut sich schon das nächste auf:
http://forum.de.selfhtml.org/my/?t=162372&m=1056587#m1056587
Es bringt relativ wenig, wenn du auf dein Doppelposting verweist, welches nicht archiviert wird. Davon hat am Ende niemand was.
Also kopiere ich deine Problembeschreibung mal (wäre eigentlich deine Aufgabe):
Ich bin jetzt soweit durch und habe die Sache mit isset($_COOKIE['PHPSESSID']) realisiert, da es mit isset($_SESSION) nicht funktionieren wollte. Auf diese Weise geht es jetzt auf jdenen Fall.
Jetzt stellt sich die Frage, wie ich die Session beenden kann. Ich habe z.Z. folgenden Code:
<?php
session_start();
session_unset();
session_destroy();
header("Location: ../index.php?show=logout");
?>
Leider funktioniert der Code nicht so, wie er sollte, denn der Session-Cookie wird nicht gelöscht, was zu Problemen in meinem Script führt. Kann ich diesen manuell löschen bzw. gibt es eine andere Lösung? Ich habe schon "setcookie("PHPSESSID", "", time()-3600);", was allerdings nicht sonderlich erfolgreich war.
Deine Herangehensweise ist bislang: Wenn jemand eingeloggt ist, dann gibts eine Session - wenn nicht, dann nicht.
Das ist grundsätzlich falsch. Es gibt immer eine Session - davon solltest du ausgehen. Aber eine Session kann den Zustand "eingeloggt" haben, oder den Zustand "ausgeloggt". Das speicherst du in einer entsprechenden Session-Variable. Wenn die Variable nicht existiert, ist die Session ausgeloggt, wenn die Variable existiert und einen sinnvollen Inhalt hat (z.B. den authentifizierten Usernamen, oder einfach $_SESSION['eingeloggt'] = true), dann ist man eingeloggt.
Dann brauchst du auch nicht irgendwelche Verrenkungen mit a) der Existenz von Cookieparametern und b) von Sessiondaten machen.
(Und sorry wegen Doppelpost, aber hier unten schaut wohl eh keiner mehr rein.)
Alle, die in diesem Forum fachlich helfen können, scannen üblicherweise das gesamte Forum. Und insbesondere diejenigen, die sich an einem Thread schon beteiligt haben, haben den eigentlich immer im Blick, weil sie bereits gelesene Postings markieren lassen und so neue Postings direkt erkennen.
- Sven Rautenberg
"Love your nation - respect the others."