• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Frage zu sessions

disconnect

Neues Mitglied
Guten Abend allerseits,
ich schreibe gerade ein kleines Loginskript.
Sieht wie folgt aus.

login.php
PHP:
<?php
session_start();
?>
<?php
$admin_pw = "pass";
$admin_na = "admin";
$admin = $_POST['admin'];
$pass = $_POST['pass'];
$submit = $_POST['submit'];

if($admin == "" || $pass == "")
  {
    echo "Bitte fülle alle Felder aus!";
  }
elseif($admin == $admin_na && $pass == $admin_pw)
    {
       $_SESSION['admin'] = $admin;
       $_SESSION['pass'] = $pass;
       $_SESSION['submit'] = $submit;
       echo "Login erfolgreich! Weiter zum <a href='admin.php'>Adminbereich</a>";
    }
    else
    {
       echo "Login fehlgeschlagen!";
    }
?>
admin.php
PHP:
<?php
session_start();
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Adminbereich</title>
</head>
<body>
<?php
 if(!isset($_SESSION['submit']))
 {
  echo "Fehler!";
 }
 elseif(isset($_SESSION['admin'],$_SESSION['pass']))
 {
   echo "Willkommen ".$_SESSION['admin']."";
 }
?>
</body>
</html>
Sagen wir mal in admin.php füge ich noch ein Formular mit action="test.php" ein.
Müsste ich wieder eine Abfrage in test.php machen, ob die Sessionvariablen gesetzt sind und diese übergeben, damit die Session auch auf einer weiteren Seite bestehen bleibt? Komme leider nicht weiter :-|
 
Werbung:
Du meinst, eine Abfrage ob jemand noch eingeloggt ist, wenn er eine neue Seite betritt?
ich habs bei mir zb so gemacht, in jeder Datei ganz oben:
PHP:
if($_SESSION['eingeloggt'] != 'ja') {
echo "Bitte zurück und einlogen!";
include("login.php");
 include_once("footer.inc.php");
exit();
}
Das würde denn so aussehen: testlink
Nebenbei wird die Session per Cookie mit getragen und per DB, Zeit und IP abgeglichen.

Ich hoffe, ich konnte dir eine kleine Anregung geben.

Mfg
 
Zuletzt bearbeitet:
naja das geht doch auch "einfacher".
Wenn eine Session gestartet wird, wird eine Session ID erzeugt und standartmaessig wird auch ein cookie (PHPSESSID heisst der glaube ich) erzeugt der die session id beinhaltet.

um zu ueberpruefen ob jemand eingeloggt ist, musst du nur ueberpruefen ob der cookie gesetzt wurde, wenn er vorhanden ist weisst du auf jeen fall das eine session schon mal angefangen wurde. wenn du das so lassen wuerdest koennte aber jeder einen cookie erzeugen mit einer selbst gebauten session id und koennte in den loginbereich kommen.
dazu musst du beim login eine verbindung zur datenbank aufbauen und die session id des users der sich angemeldet hat darin speichern.
also musst du auf jeder seite im loginbereich nicht nur testen ob der cookie mit der session id vorhanden ist, sondern auch ob die session id auch in der datenbank vorhanden ist.
dann weisst du, dass der user sich korrekt eingeloggt hat. beim ausloggen muss dann natuerlich die session id aus der datenbank geloescht werden und am besten noch der cookie zerstoert werden.

es geht natuerlich auch ohne cookies aber das prinzip ist das selbe.
 
Werbung:
Zurück
Oben