*seufz*
Hallo Leute ~> ich habe hier ja schon eine lange Weile nichts mehr rein geschrieben, aber jetzt brauche ich wirklich Hilfe (wird wohl ein längerger Beitrag):
Ich betreibe ein Forum (phpBB 2.0.4) für meine Berufsschulklasse (an alle die es nicht wissen: Ausbildung zum Fachinformatiker).
Jetzt habe ich mir in PHP einen schönen Kalender gebastelt, der eigentlich und sozusagen nahtlos ins Forum integriert werden soll. Ruft man den Kalender zum ersten Mal auf, soll man sich mit den selben Benutzerdaten anmelden wie im Forum. Soweit klappt es auch, die Informationen werden aus der Foren-DB abgerufen, Passwort md5-verschlüsselt und abgeglichen. Sprich: Anmeldung ist bereits okay und fertig.
Mein Problem ist jedoch folgendes ~>
Der Benutzer soll genau 2 Möglichkeiten haben:
1. Anmelden mit Session-Cookie, was 1 Monat lang gültig sein soll und
2. Anmelden ohne Session-Cookie. D.h. es wird eines angelegt aber beim schliessen des Browsers zerfällt dieses Cookie wieder.
Hier folgt der Code, wie ich bewerkstellige, dass man das Cookie entweder dauerhaft macht oder es eben kein Ablaufdatum erhält:
Wir Ihr seht, benutze ich die Funktion "session_set_cookie_params()" zum festlegen der Gültigkeitsdauer, hier auf 30 Tage gesetzt wenn man das Häkchen bei "autologin" setzt.
Weiter unten überprüft er nun ob die Session-Variablen existieren und man angemeldet ist, damit man gleich das Kalenderblatt aufrufen kann, ohne dass man sich neu anmelden muss:
Entscheide ich mich für das Einloggen ohne Cookie, schreibt er meist keines. Aber immer noch nicht nie! Er legt natürlich zur Laufzeit eines an, manchmal aber mit Gültigkeitsdauer von 30 Tagen, die ich doch garnicht an dieser Stelle festgelegt haben kann.
Andersherum, wenn ich das Häkchen setze und eingeloggt bleiben will, zerfällt es nach der Session gleich wieder!
Auf Anfrage kann ich noch genauer darauf eingehen, ich verzweifele aber langsam! Ich habe gestern knappe 10 Stunden daran gesessen und brauche wirklich Hilfe!
Ich wäre Euch wirklich sehr, sehr dankbar!!!
Hallo Leute ~> ich habe hier ja schon eine lange Weile nichts mehr rein geschrieben, aber jetzt brauche ich wirklich Hilfe (wird wohl ein längerger Beitrag):
Ich betreibe ein Forum (phpBB 2.0.4) für meine Berufsschulklasse (an alle die es nicht wissen: Ausbildung zum Fachinformatiker).
Jetzt habe ich mir in PHP einen schönen Kalender gebastelt, der eigentlich und sozusagen nahtlos ins Forum integriert werden soll. Ruft man den Kalender zum ersten Mal auf, soll man sich mit den selben Benutzerdaten anmelden wie im Forum. Soweit klappt es auch, die Informationen werden aus der Foren-DB abgerufen, Passwort md5-verschlüsselt und abgeglichen. Sprich: Anmeldung ist bereits okay und fertig.
Mein Problem ist jedoch folgendes ~>
Der Benutzer soll genau 2 Möglichkeiten haben:
1. Anmelden mit Session-Cookie, was 1 Monat lang gültig sein soll und
2. Anmelden ohne Session-Cookie. D.h. es wird eines angelegt aber beim schliessen des Browsers zerfällt dieses Cookie wieder.
Hier folgt der Code, wie ich bewerkstellige, dass man das Cookie entweder dauerhaft macht oder es eben kein Ablaufdatum erhält:
PHP-Code:
<? if (isset($_POST['autologin'])) // Wenn man sich mit Cookie anmelden möchte
{
$ablaufdatum = 60 * 60 * 24 * 30; // 1 Monat
session_set_cookie_params($ablaufdatum);
session_name("IA12-Kalender");
session_start();
$_SESSION['benutzer'] = $anmeldungsbenutzer;
$_SESSION['passwort'] = $anmeldungspasswort;
if ((isset($_SESSION['benutzer'])) AND (isset($_SESSION['passwort'])))
{
echo "Anmeldung erfolgreich!";
}
else
{
echo "Es ist ein Fehler aufgetreten! Die Session-Variable konnte nicht gesetzt werden!";
}
}
else // Wenn man sich nur für diese Session anmeldet werden keine Cookies geschrieben
{
session_name("IA12-Kalender");
session_start();
// void session_set_cookie_params ( int Lebensdauer [, string Pfad [, string Domain [, bool secure]]])
$ablaufdatum = ""; // 0 Sekunden
session_set_cookie_params($ablaufdatum);
$_SESSION['benutzer'] = $anmeldungsbenutzer;
$_SESSION['passwort'] = $anmeldungspasswort;
if ((isset($_SESSION['benutzer'])) AND (isset($_SESSION['passwort'])))
{
echo "Anmeldung erfolgreich! Bla!";
}
else
{
echo "Es ist ein Fehler aufgetreten! Die Session-Variable konnte nicht gesetzt werden!";
}
} ?>
Wir Ihr seht, benutze ich die Funktion "session_set_cookie_params()" zum festlegen der Gültigkeitsdauer, hier auf 30 Tage gesetzt wenn man das Häkchen bei "autologin" setzt.
Weiter unten überprüft er nun ob die Session-Variablen existieren und man angemeldet ist, damit man gleich das Kalenderblatt aufrufen kann, ohne dass man sich neu anmelden muss:
PHP-Code:
<? session_name("IA12-Kalender");
session_start();
if ((isset($_SESSION['benutzer'])) AND (isset($_SESSION['passwort'])))
{
require_once("kalender.php"); // Einbinden des Kalenderblattes
}
else
{
header("Location: $aktueller_pfad?aktion=login");
} ?>
Entscheide ich mich für das Einloggen ohne Cookie, schreibt er meist keines. Aber immer noch nicht nie! Er legt natürlich zur Laufzeit eines an, manchmal aber mit Gültigkeitsdauer von 30 Tagen, die ich doch garnicht an dieser Stelle festgelegt haben kann.
Andersherum, wenn ich das Häkchen setze und eingeloggt bleiben will, zerfällt es nach der Session gleich wieder!
Auf Anfrage kann ich noch genauer darauf eingehen, ich verzweifele aber langsam! Ich habe gestern knappe 10 Stunden daran gesessen und brauche wirklich Hilfe!
Ich wäre Euch wirklich sehr, sehr dankbar!!!
Kommentar