Julian: Übergabe der Session ID???

Beitrag lesen

Hallo,

Ich bin gerade dabei einen kleinen Passwortschutz in PHP und Sessions zu programmieren. Das ist mit meinen rudimentären Kenntnissen ein recht grosses problem, und ich habe schon einige Seiten durchgelesen, aber ich bin glaube ich einfach zu dumm dazu.

Hier die Quelltexte:

------------------------
Datei 1: "logon.php"

<?php
$usrname = "julian";
$pass = "test";  // Definition Username und Passwort

if($gesendet) {
//Mache die PW-Überprüfung nur, wenn das Formular gesendet wurde (siehe submit-button)

if($usr == $usrname && $pw == $pass) { //Überprüfe ob PW und Usern OK
  session_start(); //Wenn ja erstelle Session
  session_register("zugriff");
  $zugr = "ok"; // Schreibe in Session die Variable zugriff = ok
  //Gib Header aus mit automatischer Weiterleitung:
  echo "<html><head><meta http-equiv="refresh" content="0; URL=geheim.php"></head>"; }

else { //Wenn PW Falsch gebe Fehlermeldung aus
  echo "<html><head><title>Falsches Passwort!</title>
  <script language="JavaScript">alert('Username oder Passwort falsch!');</script></head>"; }

}
else { // Gebe normalen head-bereich aus.
echo "<html><head><title>Es wird ein Passwort benötigt!</title></head>"; } ?>

<BODY>

Username: <input type="text" name="usr"><br>
Passwort: <input type="password" name="pw"><br>
<input type="submit" value="Abschicken" name="gesendet">
</form>

</BODY>
</HTML>

------------------------
Erläuterung Datei 1: Das Script soll bei richtigem Passwort eine Session erstellen und in sie die Variable "$zugriff = ok" schreiben, danach soll sie eine weiterleitung auf die geheim.php machen.

------------------------
Datei 2: geheim.php

<?php
session_start(); //Lade Session ein
$db1 = session_encode();
$db2 = session_decode($db1); //Dekodiere Session

if($zugriff != "ok") {
echo "<html><head><meta http-equiv='refresh' content='0; URL=logon.php'></head></html>";
 }
?>
<html><body>NORMALER INHALT DER SEITE, WENN DAS PASSWORT OK IST.</body></html>

------------------------
Erläuterung Datei 2: Erst wird die Session eingeladen, anschliessend dekodiert und getestet, ob in der Session die Variable "$zugriff == ok" ist, wenn nicht, wird auf die logon.php weitergeleitet.

Das Problem: Wird die geheim.php ohne Variable einfach in die Adresszeile eingegeben, wird auf die logon.php weitergeleitet. Wird aber in die adresszeile des Browsers "geheim.php?abc=xyz" oder so, wird der Inhalt der geheim.php (ohne Passwortabfrage) angezeigt.

Kann mir hier jemand helfen???

MFG Julian