Wie immer gilt: Don't reinvent the wheel.
Ist tausendfach gelöst, lässt sich z.B. mit flourish prima realisieren.
Falls Du dennoch alles selbst machen willst: http://php.net/manual/de/function.se...kie-params.php
Ergebnis 1 bis 10 von 24
- 15.05.2011, 19:55 #1
PHP-Session eingeloggt bleiben
Hallo!
Auf meiner Seite kann man sich registrieren und auch einloggen.
Allerdings war es bis jetzt immer so, dass man nach ca. 3-4 Stunden Inaktivität ausgeloggt wurde (Session wurde automatisch beendet).
Jetzt habe ich noch eine Funktion "Eingeloggt bleiben" eingebaut.
Erst hatte ich es mit
versucht, wobei man trotzdem nicht eingeloggt blieb.Code:if($_POST["stayloggedin"]) { $lifetime = 2678400; } else { $lifetime = 2000; } ini_set("session.cookie_lifetime", $lifetime); ini_set("session.gc_maxlifetime", 2678400);
Ich hatte noch die Idee den Nutzernamen und eine md5-verschlüsselte Version des Passworts in einem Cookie zu speichern und dann beim Aufrufen, wenn man nicht eingeloggt ist automatisch einzuloggen. Jetzt weiß ich allerdings nicht ob das so wirklich "sicher" ist..
Hat jemand eine andere Idee das zu realisieren? Wie machen das die anderen Seiten (beispielsweise Apfeltalk - hier kann man ja bei Eingeloggt bleiben einen Haken machen und dann ist man für mehrere Wochen eingeloggt)..
Vielen Dank im Voraus
Viele Grüße von DRP - Homepage
MacBook Air 11,6" | iPhone 3GS 8GB | iPad 2 16GB weiß Wi-Fi | Magic Mouse | PC
- 15.05.2011, 20:24 #2Vorsicht! Dieser Beitrag kann Spuren von Ironie oder Sarkasmus enthalten.
Ohne Konservierungsstoffe (lt. Gesetz). Ohne Farbstoffe. Ohne geschmacksverstärkende Zusatzstoffe.
Deckt 2% des Richtwertes des täglichen Apfeltalkbedarfs basierend auf einem Karmalevel von 200 Pt.
- 15.05.2011, 22:46 #3
Okay, ich habs jetzt selber gemacht und es funktioniert auch schon wunderbar! Vielen Dank erstmal!
Nur dass die Session über alle Subdomains reicht funktioniert noch nicht. (Also mit dem .domain.de habe ich gemacht!)Viele Grüße von DRP - Homepage
MacBook Air 11,6" | iPhone 3GS 8GB | iPad 2 16GB weiß Wi-Fi | Magic Mouse | PC
- 15.05.2011, 23:29 #4
Dann poste doch mal Deinen Code.
Vorsicht! Dieser Beitrag kann Spuren von Ironie oder Sarkasmus enthalten.
Ohne Konservierungsstoffe (lt. Gesetz). Ohne Farbstoffe. Ohne geschmacksverstärkende Zusatzstoffe.
Deckt 2% des Richtwertes des täglichen Apfeltalkbedarfs basierend auf einem Karmalevel von 200 Pt.
- 15.05.2011, 23:32 #5
Okay. Von der PHP-Datei zum Einloggen:
Code:ini_set("session.use_cookies", "On"); if($_POST["stayloggedin"]) { $lifetime = 2678400; } else { $lifetime = 2000; } ini_set("session.use_trans_sid", "1"); session_set_cookie_params($lifetime, "/", ".drp-seiten.de"); session_start();Viele Grüße von DRP - Homepage
MacBook Air 11,6" | iPhone 3GS 8GB | iPad 2 16GB weiß Wi-Fi | Magic Mouse | PC
- 16.05.2011, 07:19 #6
Und Du bist sicher, dass die Sessions aller Subdomains auch die gleichen sind?
Und gibt es einen Grund für "session.use_trans_sid" => 1 ?Vorsicht! Dieser Beitrag kann Spuren von Ironie oder Sarkasmus enthalten.
Ohne Konservierungsstoffe (lt. Gesetz). Ohne Farbstoffe. Ohne geschmacksverstärkende Zusatzstoffe.
Deckt 2% des Richtwertes des täglichen Apfeltalkbedarfs basierend auf einem Karmalevel von 200 Pt.
- 16.05.2011, 08:24 #7
Das habe ich als Alternative gemacht, dass alle Link zu den Subdomains so aussehen:
http://sub.Domain.de?PHP_SESSID=1234567890
Was heißt dass die Sessions gleich sind??Viele Grüße von DRP - Homepage
MacBook Air 11,6" | iPhone 3GS 8GB | iPad 2 16GB weiß Wi-Fi | Magic Mouse | PC
- 16.05.2011, 14:32 #8
Auch das eingeloggt bleiben funktioniert nicht
Viele Grüße von DRP - Homepage
MacBook Air 11,6" | iPhone 3GS 8GB | iPad 2 16GB weiß Wi-Fi | Magic Mouse | PC
- 17.05.2011, 14:18 #9
Woran könnte das denn liegen?
Also der Code müsste fehlerfrei sein.Viele Grüße von DRP - Homepage
MacBook Air 11,6" | iPhone 3GS 8GB | iPad 2 16GB weiß Wi-Fi | Magic Mouse | PC
- 17.05.2011, 20:30 #10Idared
- Registriert
- 04.2011
- Beiträge
- 25
Cookie?
Erstelle dir einfach einen Cookie, der einen Monat hält. Wenn der Nutzer auf die Checkbox "stay" klickt, wird ein einmonatiger Cookie angelegt, der ihn wieder einloggt.
In der Login.phpCode:if(isset($_POST['stay']) && $_POST['stay'] == 'yes') { setcookie('Stay', md5('P1kachoo') . $session['username'], time() + 30 * 86400); // Geheimes Schlüsselwort wählen! }
Am Anfang jeder Datei dann:
So gesehen ist dein Vorschlag schon richtig gewesen, DRP. Mein Skript musst du vielleicht noch ein bisschen anpassen und den zweiten Teil erweitern. Ich hoffe, ich konnte dir helfen.Code:if(isset($_COOKIE['stay']) && substr($_COOKIE['stay']) == md5('P1kachoo')) { //geheimes Kennwort, Lösung mit preg_Match ggf. besser session_start(); // Variablen setzen // ... }
dominik.html


Zitieren
