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

!Problem! Paswortabfrage mit Sessions

Status
Für weitere Antworten geschlossen.

StormY

Neues Mitglied
Hallo,
ich habe ein Probelm mit einer Passwortabfrage, die ich in drei Teilen gemacht habe:
1. die Passwort und Name Eingabe:



Code:
<html>
<head><title>Passwortabfrage</title></head>
<body bgcolor="black">
<table align="center" style="color:white">
<form action="check.php" method="post">
<tr>
<td >Name</td>
<td><input type="text" name="name" /></td>
</tr>

<tr>
<td>Passwort</td>
<td><input type="password" name="passwort" /></td>
</tr>
<tr>


<td></td
<td><input type="submit" value="Best&auml;tigen" /></td>
</tr>

</form>
</table>
</body>
</html>



2. die PHP Datei, die die Eingaben überprüft:



Code:
<?php
$login=0;
if (isset($_POST["name"]) && isset($_POST["passwort"]))
{
   $name=$_POST["name"];
   $passwort=$_POST["passwort"];
   if ($name=="lanpics" && $passwort=="gaplan")
      {
      session_start();
      $login=1;
      session_register("login");
      header("Location: member.php?id=session_id()");
      }
   else 
      {
      echo "<html><head><body>";
      echo "Benutzername und/oder Passwort nicht korrekt!!!
";
      echo "[url='passwortabfrage.html']Noch ein Versuch...[/url]</body></html>";
      }
}
else
{
echo "Du musst Name und Passwort eingeben";
}
?>



und 3. die PHP Datei zu der man nach der Eingabe gelangt



Code:
<?php
session_register("login");
if (isset($_GET["id"]))
{
  if ($_SESSION["login"]!=1)
  {
  header("Location: passwortabfrage.html");
  }
  else
  {
  echo "<html><body>";
  echo "Sie sind im Adminbereich! Herzlich willkommen !";
  echo "</body></html>";
  }
}
else
{
header("Location: passwortabfrage.html");
}
?>


jtz bekomme ich immer nur die Ausgabe "du musst Passwort und Nam eingeben", obwohl ich dies jedoch gemacht habe. Ich finde meinen Fehler nicht, vlt könnt ihr mir ja weiter helfen.
vielen Dank im voraus
mfG StormY
 
Werbung:
Werbung:
Wenn ich schon session_register() sehe .. boah ... da kommt mir das Kotzen.
Bemühe mal die Suche nach "Login" und "Ben" als Autor. Dann erhälst Du Ergebnisse.

[Code habe ich mir aufgrund von session_register() schon gar nicht mehr angeschaut. Wer das nutzt ist halt nicht wirklich aktuell. Sorry.]
 
Seit PHP 4.1.0 gibt es das superglobale Array $_SESSION. Da dort Sessioneinträge automatisch registriert werden braucht man session_register() nicht mehr. Nein, noch schlimmer, wenn man session_register() verwendet ist man auf register_globals ON angewiesen.
Woher ich das alles weiß?
Wenn Sie in Ihrem Script session_register() verwenden, funktioniert es nicht in Umgebungen, in denen die PHP-Anweisung register_globals deaktiviert ist.
:arrow: http://de2.php.net/manual/de/function.session-register.php
:arrow: http://de2.php.net/manual/de/reserved.variables.php#reserved.variables.session

Was es mit register_globals zu tun hat?
:arrow: http://de2.php.net/manual/de/security.globals.php
:arrow: http://forum.developers-guide.net/showthread.php?t=688#post6007

Jou, so ist das. :mrgreen:

Grüße, Ben.
 
Werbung:
Also bei mir funktioniert es habe mal lokal getestet, aber in der Titlezeile wird keine Session Id ausgeben
 
gollum warum sollte sie auch ? wär ja schon ne halbe sicherheitslücke.
und wir haben das doch schon alles geklärt -> es funktioniert nur wenn der server Unsicher konfiguriert ist was man natuerlich vermeiden sollte :)
 
vielen Dank für eure Antworten,
also kann ich das Session_register() einfach weglassen?
Ich habe statt isset die funktion empty verwendet, da funktioniert
das Skript bei mir.
 
Werbung:
Werbung:
es fehlt noch session_start bei der 3. Datei. das session_register kannste dir schenken. das ueberschreibt nur die vorhandene Session mit einer leeren.
 
session_start() vergessen. Manchmal ist die Lösung noch so einfach und man kommt nicht drauf.
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben