HX3 Foren

HX3 Foren (https://hx3.de/)
-   Software- und Webentwicklung (https://hx3.de/software-webentwicklung-23/)
-   -   [PHP] Sessions (https://hx3.de/software-webentwicklung-23/php-sessions-12007/)

8-Ball 05.01.2006 22:45

[PHP] Sessions
 
Hi @ all!

Ich brauch mal eure Hilfe. :nixweiss:

Ich bastel mir grad 'ne Adminkonsole für meine HP und verwende dafür Sessions.
Btw: Hoster ist Funpic (www.funpic.de). Ich habe zwar keinen direkten Zugriff auf die php.ini, aber die Session-Lifetime stelle ich mir mit session_cache_expire(WERT) auf 0 ein. Logischerweise folgt danach erst session_start(). :D

Soweit so gut. Wenn ich mich nicht irre, dann bedeutet der Wert 0, dass die Session ihre Gültigkeit nach dem Schließen des Browsers verliert. Das Cookie wird jedoch nicht automatisch gelöscht, im Gegenteil: Als Verfallsdatum steht die Erstellungszeit des Cookies + 1 Stunde.
Beispiel: Cookie um 18:21 Uhr erstellt --> Cookie verfällt um 19:21 Uhr.

Nun meine Fragen, wieso ist die 'expire_time' 60 Minuten und nicht 0 Minuten? Wie stelle ich es an, dass die Session nach dem Schließen des Browsers die Gültigkeit verliert?
Irgendwie will das bei mir nicht so...


Thx schonmal im voraus!! :daumen:




Atomic 06.01.2006 09:53

AW: [PHP] Sessions
 
Versuch doch einfach mal ein eigenes Session-System zu entwickeln.

Abgesehen davon das du unabhängig von der PHP Installation bist lernst du während der Entwicklung des Systems WAS da alles überhaupt im Hintergrund vor sich geht.

Bevor du den Quellcode niederschreibst empfiehlt sich ein UML Diagram zu zeichnen.

8-Ball 06.01.2006 09:57

[PHP] Sessions -> solved
 
Ich hab das Problem soeben selbst gelöst. :D
Habe mir die Session Befehle angeschaut und dabei ist mir folgendes aufgefallen:
Es gibt einen Befehl session_set_cookie_params ( int Lebensdauer [, string Pfad [, string Domain [, bool secure]]]). Mithilfe dieses Befehls kann ich die Lebensdauer auf 0 stellen, sodass das Cookie nach dem Beenden des Browsers gelöscht wird. Die Lebensdauer stand Standardmäßig auf 3600 Sekunden, welches die Stunde Differenz erklärt. ;)

Aber ich habe noch eine Frage:
Wenn ich die Seite der AdminKonsole aufrufe, klar, dann kommt zuallererst der Login. Wenn ich mich dann eingeloggt habe, so plane ich das, soll er lediglich auf der Seite bleiben. Soll heißen, ich "navigiere" mithilfe einer $section Variable. Dürfte soweit klar sein. Somit brauche ich nur am Anfang der Seite abfragen, ob die Session existiert oder nicht, um zu wissen, ob sich der User eingeloggt hat oder nicht.
Wie Frage ich danach, ob die Session existiert? Mache ich das richtig, indem ich nach if(!$sid && !$PHPSESSID) frage oder gibt es da noch einen (evtl. besseren) Weg? Ich möchte so auch u.a. vermeiden, dass wenn der User angemeldet ist und auf anderen Seiten surft, sich nicht nochmals anmelden muss, wenn er auf die AdminKonsole will. Hoffe das war verständlich. :rolleyes:
Mit meiner Methode funktioniert das super, nur ist diese auch sicher oder kann jeder x-beliebige so den Login überspringen?

Kurz gesagt: Wird mit der Abfrage
if(!$sid && !$PHPSESSID) geschaut, ob eine Session vorliegt (also geschaut, ob das Session-Cookie vorliegt?).



anders^on 06.01.2006 12:06

AW: [PHP] Sessions
 
Deine Methode der Session-Überprüfung scheint mir eher unsicher .. zumindest theoretisch
könnte doch jeder hergehen und sich manuell einen Cookie mit einer x-Beliebigen $PHPSESSID-
Variable erstellen .. somit ist $PHPSESSID gesetzt und der user 'scheint' eingeloggt.

http://tut.php-q.net/login.html#u5

Dort wird im Cookie die 'UserID' abgespeichert und abgefragt:

PHP-Code:

if(isset($_SESSION['ID'])) {
    echo 
"logged in<br/>\n";
} else {
    echo 
"not logged in<br />\n";


Generell würde ich dir raten das obige Tutorial zu befolgen, wenn du deinen ersten
Login-Bereich erstellst .. wichtig ist nämlich u.a. auch, dass eine SessionID nicht von
verschiedenen IP-Addressen kommen darf (Sicherheit).

Das, und vieles mehr wird im tut.php-q.net behandelt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:46 Uhr.

Angetrieben durch vBulletin, Entwicklung von Philipp Dörner & Tobias


SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119