HX3 Foren  

  HX3 Foren > Konstruktiv > Software- und Webentwicklung

Software- und Webentwicklung Planung, Programmierung und Administration
UML, JavaScript/DOM, ASP, JSP, PHP, Apache, MySQL, Python, Perl (...)

Antwort
 
Themen-Optionen Ansicht
Alt 05.01.2006, 22:45   #1 (permalink)
50 Beiträge
 
Benutzerbild von 8-Ball
 
Registriert seit: 27.03.2004
Beiträge: 74
Icon13 [PHP] Sessions

Hi @ all!

Ich brauch mal eure Hilfe.

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().

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!!



__________________
Zitat von 8-Ball

Hi

Dieser Beitrag wurde 49 mal editiert.
8-Ball ist offline   Mit Zitat antworten
Alt 06.01.2006, 09:53   #2 (permalink)
Administrator 10 Jahre hx3
5000 Beiträge
 
Benutzerbild von Atomic
 
Registriert seit: 21.02.2003
Ort: Köln
Alter: 38
Beiträge: 5.162
Atomic eine Nachricht über Skype™ schicken
Standard 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.
__________________
https://savetheinternet.info/
Atomic ist offline   Mit Zitat antworten
Alt 06.01.2006, 09:57   #3 (permalink)
50 Beiträge
 
Benutzerbild von 8-Ball
 
Registriert seit: 27.03.2004
Beiträge: 74
Icon11 [PHP] Sessions -> solved

Ich hab das Problem soeben selbst gelöst.
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.
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?).


__________________
Zitat von 8-Ball

Hi

Dieser Beitrag wurde 49 mal editiert.
8-Ball ist offline   Mit Zitat antworten
Alt 06.01.2006, 12:06   #4 (permalink)
Administrator
500 Beiträge1000 Beiträge2.500 Beiträge
 
Benutzerbild von anders^on
 
Registriert seit: 10.05.2003
Ort: Bayern™
Beiträge: 3.483
anders^on eine Nachricht über ICQ schicken anders^on eine Nachricht über Skype™ schicken
Standard 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.

Geändert von anders^on (06.01.2006 um 12:08 Uhr).
anders^on ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Kontakt - HX3.de - Archiv - Nach oben

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