2017-05-22 169 views
0

我有一個基本的登錄頁面,用戶需要輸入用戶名和密碼,並檢查針對與用戶信息的XML文檔的輸入的內容。PHP登錄頁面總是返回不正確的用戶名和密碼

的問題是,即使用戶名和密碼是正確的PHP文件仍然顯示的憑據是不正確的。

感謝

<?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; 
     } 

    } 
?> 

按照要求,這裏的XML的例子:

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

請,提供例如XML的。 (變化敏感數據) – FirstOne

+0

檢查您的$的DOM包含你希望它包含(做一個vardump)什麼 – Wep0n

+0

應該不是被檢查$ _POST而不是$ _GET – verhie

回答

2

你正在服用$pwd變量,而不是$password

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

替換:

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

我無法相信我錯過了錯字。謝謝您的幫助! – Craig

+1

@FirstOne Yah感謝兄弟指出 –

相關問題