[PHP] Problem mit Passwort-Abfrage [Gelöst !]

Ich stehe vor einem Problem und kapier im Moment nicht, warum dieses Problem auftritt.
Ich habe für eine Webseite eine ganz einfach Passwort-Abfage mit einer If-Abfrage realisiert (ist sehr unsicher, aber darum geht’s mir im Moment absolut nicht).
Auf der Login-Seite verwende ich folgenden Code (nur der wichtige Teil):

<form action="index.php?id=11" method="post">

<p>Geben Sie hier Ihren Benutzernamen ein:</p>
<label><input type="text" name="Benutzer"></label>

<p>Geben Sie hier Ihr Kennwort ein:</p>
<input type="password" name="Kennwort">
<br><br>
<input type="submit" value="Login"> </form>

Die index.php?id=11 verweist auf die check.php, die wie folgt aussieht (nur der wichtige Teil):

<?php
   if ($Benutzer = "" or $Kennwort = "")
   { echo "Bitte alle Felder ausfüllen!"; }
   else
   if($Benutzer = "Webo" and $Kennwort = "zugang")
   { echo "Willkommen!"; }
   else 
   { echo "Sorry, bitte noch mal versuchen!"; }
?>

Jetzt kommt aber immer, egal was ich eintippe in die Felder: Willkommen.
Wo liegt mein Fehler, was hab ich übersehen? Wäre schön, wenn mir jemand da weiterhelfen könnte.

Grüße

Webo

Du musst immer statt = einfach == schreiben, denn = weist einen Wert zu, und du möchtest ja vergleichen.

Das ist dein erster Fehler - du verlaesst dich offenbar auf register_globals=on.
(Oder kommt davor noch was, was diese Variablen aus $_POST befuellt hat?)

Und ueber den Unterschied zwischen dem Zuweisungs- und dem Vergleichsoperator moechtest du noch mal nachdenken.

Ok, mal schauen, ob ich’s verstanden hab, was ihr meintet:

  • == statt =, da sonst kein Vergleich
  • $Benutzer und $Kennwort werden “leer” überliefert, da sie nicht global sind

Das heißt ich müsste vor dem Vergleich noch sagen, dass er $Benutzer und $Kennwort aus der login.php übernehmen soll, oder ?

Ja, oder du machst das mit $_POST[‘Benutzer’] und $_POST[‘Kennwort’]

Ok, nachdem ich

$Benutzer = $_POST['Benutzer'];
$Kennwort = $_POST['Kennwort'];

hinzugefügt hab, und = durch == ersetzt habe, funktioniert der Login.

Ich danke Euch vielmals für Eure Hilfe.

Grüße

Webo

Oh, da wart ihr schneller. nimm mal diesen Code…

Du hast auch eine Klammer vergessen, sonst macht die Logik keinen Sinn :wink:

<?php
   if ($$_POST['Benutzer'] == "" || $_POST['Kennwort'] == "")
    echo "Bitte alle Felder ausfüllen!";
   else{
   if($_POST['Benutzer'] == "Webo" and $_POST['Kennwort'] == "zugang")
    echo "Willkommen!";
   else
    echo "Sorry, bitte noch mal versuchen!";
   }
?>

Im übrigen macht das input im Label auch keinen Sinn.
Vllt meinst du es so (oder lass das label weg):

<form action="index.php?id=11" method="post">
<fieldset>
<legend>Login:</legend>
<label for="user">Geben Sie hier iheren Bneutzernamen ein:</label>
<input type="text" name="Benutzer" id="user">
<label for="pass">Geben Sie hier Ihr Kennwort ein:</label>
<input type="password" name="Kennwort" id="pass">
<br><br>
<input type="submit" value="Login"></fieldset></form>