Einfaches Passwortsystem

Tha_Joka

Mitglied
Hi Folks

Ihr seid die Helden, das Forum hier macht echt Spaß

Ich hab mich mal nach einem einfachen Passwortsystem umgeschaut und folgendes gefunden

Formular:
HTML:
<form action="login-pruefung.php" method="post">
<br>
<table width="60%" border="0" align="center" cellpadding="3" cellspacing="0">
  <tr>
    <td width="50%">Geben Sie das Passwort ein: </td>
    <td width="50%"><input name="Passwort" size="20" type="password"></td>
  </tr>
  <tr>
    <td><input name="Send" type="submit" value="Login"></td>
    <td>&nbsp;</td>
  </tr>
</table>
</form>

login-pruefung.php
PHP:
<?php 
$Zugangspasswort = "mein_passwort"; 
if($_REQUEST['Send'] && $_REQUEST['Passwort']==$Zugangspasswort) 
{ 
    session_start(); 
    session_register("SESSION_Passwort"); 
    $SESSION_Passwort=$Zugangspasswort; 
} 
?> 
<html> 
<head> 
<title>Login</title> 
</head> 
<body> 
<?php 
if($SESSION_Passwort==$Zugangspasswort) 
{ 
    echo"<meta http-equiv='refresh' content='2; URL=sichere_seite.php'>"; 
    echo"<p align=\"center\" class=\"text\">Sie sind erfolgreich eingeloggt! Sie werden weitergeleitet.... 
    <br><br>Sollte die Weiterleitung nicht funktionieren klicken Sie bitte <a href=\"sichere_seite.php\"><b>hier</b></a>.</p>"; 
} 
else 
{ 
    echo"<p align=\"center\">Login fehlgeschlagen!<br>Bitte versuchen Sie es nochmal: <a href=\"login.php\">zurück</a></p>"; 
} 
?> 
</body> 
</html>

sichere_seite.php
PHP:
<?php 
session_start(); 
?> 
<html> 
<head> 
<title>Login</title> 
</head> 
<body> 
<?php 
$Zugangspasswort = "mein_passwort"; 

if($SESSION_Passwort==$Zugangspasswort) 
{ 
?> 
Mein super geheimer Inhalt 
<? 
} 
else 
{ 
echo"<p align=\"center\" class=\"text\">Sie sind nicht berechtigt die Seite anzuzeigen!<br>Bitte loggen Sie sich vorher <a href=\"login.php\">hier</a> ein.</p>"; 
} 
?> 
</body> 
</html>

So jetzt mal meine Fragen: Wenn ich nicht eine geschützte Seite, sondern mehrere Seiten brauche, dann sollte jede geschützte Seite so anfangen, wie die "sichere_seite.php", stimmts?

Und ähm, wann ist dann die Session beendet? Ich kann mich ja nicht ausloggen?!


Danke!

Tha_Joka
 
Hi
Ich weiss nicht wie lange es geht bis das Session beendet ist aber mit dem Befehl session_destroy(); werden die Sessions gelöscht.

Beispiel:

log.php:
PHP:
<? if($_GET[login])
// also wenn z.B. log.php?login=1 ist kommt das hier:
{
$Zugangspasswort = "mein_passwort";
if($_REQUEST['Send'] && $_REQUEST['Passwort']==$Zugangspasswort) 
{
    session_start();
    session_register("SESSION_Passwort");
    $SESSION_Passwort=$Zugangspasswort;
}
?>
<html>
<head>
<title>Login</title>
</head>
<body>
<?php
if($SESSION_Passwort==$Zugangspasswort)
{
    echo"<meta http-equiv='refresh' content='2; URL=sichere_seite.php'>";
    echo"<p align=\"center\" class=\"text\">Sie sind erfolgreich eingeloggt! Sie werden weitergeleitet....
    <br><br>Sollte die Weiterleitung nicht funktionieren klicken Sie bitte <a href=\"sichere_seite.php\"><b>hier</b></a>.</p>";
}
else
{
    echo"<p align=\"center\">Login fehlgeschlagen!<br>Bitte versuchen Sie es nochmal: <a href=\"login.php\">zurück</a></p>";
}
if($_GET[logout])
//bei log.php?logout=1 wird das Session beendet
{
{
    session_start();
session_destroy();
echo" Sie wurden erfolgreich ausgeloggt!";

}

?>

Und wegen mehreren Seiten, ja jede muss so anfangen!
 
Zuletzt bearbeitet:
Zers!

Wie meinst du das, du weißt nicht wie lange es geht? ... Wenn man sich einloggt ist man drin und wenn man sich ausloggt ist man wieder draußen?! Nein?! Gibts da ein Zeitmaximum?

Gruß!
 
Hallo Leute,

mal zur allgemeinen Verwirrung (ähh Entwirrung).

JA - Sessions haben eine bestimmte Laufzeit - die wird serverseitig vom Admin gesetzt und ist Variabel - die Standarteinstellung ist aber soviel ich weiss 3600 Sekunden.
und NEIN - Sessions werden automatisch beendet wenn man den Browser schließt.
Also wenn man den Browser nach 2 Minuten schließt und dann sofort wieder öffnet ist auch die Session futsch.

JA - Wenn man sich ausloggt (also über z.B. eine logout.php) und session_destroy() bzw. auch m.U. session_unregister() dann ist die Session beendet und der Benutzer kann die geschützten Seiten nicht mehr anzeigen.

AUSNAHMEN bestätigen die Regel:
Wenn man ein Cookie setzt (keine Session-Cookie) dann kann man im Cookie selbst die Lebensdauer bestimmen. Dazu müsste man aber auf das Cookie prüfen.

Ich hoffe ich konnte euch nun gänzlich Verwirren :-)
 
Hat das Skript mal jemand ausprobiert? Irgendwie kann ich mich nicht einloggen es kommt immer die Meldung "Login fehlgeschlagen" ... ich komm aber nicht drauf was da los ist... und das Beispiel von ICPUI geht irgendwie gar nicht ... hmmmm !!
 
Vielleicht nochmal zur Klärung mit den korrekten Infos:

Die Session wird nicht automatisch beendet, wenn der Browser geschlossen wird. Nur das Cookie des Browsers, in dem die Session-ID gespeichert wird, hat üblicherweise nur eine Lebensdauer bis zum Schließen des Browsers. Wenn jemand jedoch die Session-ID ausspioniert, kann er eine nicht beendete Session damit übernehmen.

Die Session hat ein Standard-Timeout von 1440 Sekunden, also 24 Minuten. Das lässt sich bei jedem Webserver mit phpinfo() herausfinden. Der zugehörige Eintrag heißt: session.gc_maxlifetime

Die Session wird nach dieser Zeit aber nicht wirklich gelöscht, sondern nur als "abgelaufen" markiert. Ob die Sessiondaten tatsächlich auf dem Server entfernt werden, bestimmt der Zufall. Der Server führt nämlich hin und wieder eine sogenannte "garbage collection" durch (also eine Müllabfuhr), bei der abgelaufene Sessiondaten gelöscht werden.

Hier gibt's noch mal ein Code-Beispiel mit Logout-Funktion:
http://www.heddesheimer.de/coaching/php_login.html

Gruß Marian
 
Zurück