Dynamische Webseiten

Virtueller Campus Projekt, PHBern

StartseiteJavaScriptCSSJSPPHPMySQLDrucken

Schriftgrösse: kleiner - zurücksetzen - grösser

Zugriff mit einem Passwort schützen

Der Zugriff auf eine Webdatenbank oder zumindest die Mutationsfunktionen sollten mit einem Passwort geschützt sein.

Dafür stellt man eine Login-Seite voran, in der ein Passwort eingegeben und geprüft wird. Damit das Passwort in der Adresszeile des Browsers nicht sichtbar wird, muss im HTML-Teil an Stelle der Methode GETBei der Methode GET werden die Formulardaten direkt hinter der URL-Adresse angehuengt. Die Parameterliste ist in der Adresszeile des Browsers sichtbar, was beim Lernen und Entwickeln vorteilhaft ist. die Methode POSTBei der Methode POST werden die Formulardaten an die Adresse uebertragen, die bei "action = " im HTML-Formular eingegeben ist. POST wird immer dann eingesetzt, wenn Daten uebertragen werden, die nicht fuer jederman ersichtlich seien sollten, insbesondere Passwuerter, aber auch dann, wenn die Parameterliste umfangreich ist, da die URL eine beschraenkte Laenge hat. verwendet werden. Wenn das Passwort korrekt ist, wird man von der Login-Seite auf die geschützte Seite (personendaten.php) umgeleitet, sonst bleibt man in der Login-Seite "hängen". Die Login-Seite muss einen Abbrechen Button enthalten, damit ein Ausstieg, ohne den Browser schliessen zu müssen, möglich ist.

Es ist auch nicht möglich, direkt zu der Datei personendaten.php zu gelangen. In diesem Fall wird die Seite keinzugriff.html angezeigt.

Beispiel zeigen (login.php) // Code ohne Zeilennummerierung anzeigen

<?php //login.php Eingabe überprüfen
header("Cache-Control: no-cache, must-revalidate"); 
$vUser "";
$vPassword "";
$msg " ";
session_start();

if (isset(
$_POST["submit"]))
{
  
$vUser trim($_POST["tUser"]);
  
$vPassword = ($_POST["tPassword"]);
  if ((
$vUser != "qwe")||($vPassword != "123"))
  {
    
$msg "Username oder Password sind ungültig" ;
      
$_SESSION["pwd"] = "";
  }
  else
  {
    
$_SESSION["pwd"] = $vPassword;
    
$insertGoTo "personendaten.php"
    
header(sprintf("Location: %s"$insertGoTo));
        exit;
  } 
}

if (isset(
$_POST["cancel"]))
{
  
$insertGoTo "http://www.google.ch"
  
header(sprintf("Location: %s"$insertGoTo));
    exit;
}
?>
<html>
<head><title>login</title></head>
<body onLoad = "document.form1.tName.focus()">
<p></p>
<form name = " form1" method = "post" action = "">
  <p>User:
    <input type="text" name = "tUser" value = "<?php echo $vUser ?>"> 
    Testuser: qwe </p>
  <p>Password : 
    <input type="password" name = "tPassword" value = ""> 
    Testpassword: 123 </p>
  <p><input type="submit" name = "submit" value = "Login">  
  <input type="submit" name = "cancel" value = "Abbrechen"> </p>
  <p><? echo $msg ?> </p>
</form>
</body>
</html>