2017-05-22 3 views
0

Ich habe eine Basis-Login-Seite, die Benutzer eingegebenen Benutzername und Passwort und prüft die eingegebenen Details gegen ein XML-Dokument mit Benutzerdetails.PHP Login-Seite Immer falsche Benutzername und Passwort zurückgeben

Das Problem ist, auch wenn der Benutzername und das Passwort korrekt sind, zeigt das PHP-Dokument immer noch an, dass die Zugangsdaten falsch sind.

Dank

<?php 

    if(isset($_GET['login'])) { 

     $id = ""; 
     $errors = ""; 
     $dom = DomDocument::load('../../data/customer.xml'); 

     if(empty($_GET['email'])) { 
      $errors .= "Email field cannot be empty <br />"; 
     } 
     else { 
      $inputEmail = $_GET['email']; 
     } 
     if(empty($_GET['password'])) { 
      $errors .= "Password field cannot be empty <br />"; 
     } 
     else { 
      $inputPassword = $_GET['password']; 
     } 

     if(isset($inputEmail) && isset($inputPassword)) { 

      $email = $dom->getElementsByTagName('email'); 
      $password = $dom->getElementsByTagName('password'); 

      for($i = 0; $i < $email->length; $i++) { 
       if($inputEmail == $email->item($i)->textContent && $inputPassword == $pwd->item($i)->textContent) { 
        $id = $dom->getElementsByTagName("id")->item($i)->textContent; 
        break; 
       } 
      } 

     } 

     if($id == "") { 
      $errors .= "Incorrect username or password"; 
     } 

     if($errors == "") { 
      echo true; 
     } 
     else { 
      echo $errors; 
     } 

    } 
?> 

Wie gewünscht, hier ein Beispiel für die XML:

<customers> 
    <details> 
     <firstname>Example</firstname> 
     <lastname>Example</lastname> 
     <email>[email protected]</email> 
     <id>1</id> 
     <password>cb750e88</password> 
    </details> 
</customers> 
+1

Geben Sie bitte ein Beispiel für XML an. (Ändern Sie sensible Daten) – FirstOne

+0

Überprüfen Sie, ob Ihr $ dom enthält, was Sie erwarten, dass es enthält (Do a vardump) – Wep0n

+0

sollte es nicht überprüfen $ _POST anstelle von $ _GET – verhie

Antwort

2

Du $pwd Variable statt $password Einnahme:

if($inputEmail == $email->item($i)->textContent && $inputPassword == $pwd->item($i)->textContent) { 

Es ersetzen:

if($inputEmail == $email->item($i)->textContent && $inputPassword == $password->item($i)->textContent) { 
+0

Ich kann nicht glauben, dass ich diesen Tippfehler übersehen habe. Danke für die Hilfe! – Craig

+1

@FirstOne Yah Dank Bro, um darauf hinzuweisen –

Verwandte Themen