André Laugks: Variablen und Arrayvariablen mit Schleife vergleichen

Hallo!

Vorweg ersteinmal muß ich sagen, das ich erst meine ersten Schritte in PHP mache. Um richtig zu lernen, ist es immer gut, sich ein Problem zu stellen, bei dem ich auch gleich Probleme habe.

Es geht um eine Passwortabfrage für Arme!

anmeldung.html:
<HTML><BODY>
<form action="abfrage.php3" method="POST">
    Name:<input type="Text" name="name" size="30"><br>
    Passwort:<input type="password" name="passw" size="30"><br>
   <input type="Submit" name="senden" value="Abschicken">
</form>
</BODY></HTML>

abfrage.php3:
<HTML><BODY>
<?php
$name;
$passw;
$aname = array("thomas", "jens", "sven");
$apassw = array(123, 456, 789);

for($i = 0; $i <= 2; $i++)
{
    if(($aname[i] == $name) && ($apassw[i] == $passw)) { echo "Passwort und Benutzername ist richtig"; break; }
    
}
?>
</BODY></HTML>

Das Problem ist, das die übergebenen Wert, mit den Werten in der Arrays nicht verglichen werden. "Passwort und Benutzername ist richtig" wird nicht angezeigt, wenn ich bei Name thomas und bei Passwort 123 nicht. Die Werte bekomme ich übergeben, das habe ich überprüft. Wenn ich in die Eingabefelder nichts eingebe, wird der Text geschrieben. PHP hat ja so seine Eigenarten, bezüglich den Zugriff auf Variablen. Ich meine, hier hätte ich aber nicht dagegen verstoßen.

mfg, André

  1. abfrage.php3:
    <HTML><BODY>
    <?php
    $name; <__________
    $passw;<___________
    $aname = array("thomas", "jens", "sven");
    $apassw = array(123, 456, 789);

    »»
    ich glaube, dass  die amrkierten zeilen ueberfluessig sind.
    ansonnsten versuch mal ungetestet:
    $idundpass=array(id=>$aname,pass=>$apass);
    while (list($id, $pass)=each($idundpass))
      {
      if($id==$name && $pass==$passw)
        {
        echo "uebereinstimmung";
        }
      }

    kfichtner

    1. Hallo!

      ich glaube, dass  die amrkierten zeilen ueberfluessig sind.
      ansonnsten versuch mal ungetestet: .....

      Dein Bsp. tut es auch nicht. Ich bin mir ziemlich sicher, das in der if-Abfrage in der Schleife, irgendwie nicht auf die Arrays zugegriffen werden kann.

      mfg, André

  2. Hi André,

    d hast einen klize kleinen Fehler gemacht. den Array $aname[i] und apasswd[i] gibt es nicht. ;-)
    Probiere es stattdessen mal mit $aname[$i], udn $apasswd[$i] ;-)

    <HTML><BODY>
    <?php
    $aname = array("thomas", "jens", "sven");
    $apassw = array(123, 456, 789);

    for($i = 0; $i <= 2; $i++)
    {
      if($aname[$i] == $name && $apassw[$i] == $passw)
      {
        echo "Passwort und Benutzername  ist richtig";
        break;
      }
    }
    ?>
    </BODY></HTML>

    MfG Olli