2017-06-15 73 views
0

當我執行我的javascript這段代碼爲什麼只是其他語句工作,但不是如果,當我使用md5($ _ POST ['密碼'])無法登錄?但是,當不使用MD5一切正常PHP與ajax否則不工作和md5()?

請幫我:)

這是我的數據庫

image

這是我的javascript

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("form#form_login").submit(function(event){ 
      event.preventDefault(); 
      var formData = new FormData($(this)[0]); 
      $.ajax({ 
       type:'POST', 
       url :'../assets/js/utama/login.data.php', 
       data:formData, 
       async:false, 
       cache:false, 
       contentType:false, 
       processData:false, 
       success:function(data){ 
        if(data == "success") 
        { 
         window.location = '../index.php?hal=home'; 
        }else{ 
         alert('error'); 
        } 
       } 
      }); 
     }); 
     return false; 
    }); 
    </script> 

這是我的PHP文件

<?php 
session_start(); 
if(isset($_POST['email'])){ 
    include "../../../konten/koneksi.php"; 
    $email = $_POST['email']; 
    $pass = md5($_POST['password']) 
    $sql_login = "select * from user where email_user ='$email ' AND password_user='$pass'"; 
    $run_login = mysql_query($sql_login); 
    $data = mysql_fetch_array($run_login); 
    if(isset($data['email_user'])){ 
     $_SESSION['email_user'] = $data['email_user']; 
     $_SESSION['status'] = $data['status']; 
    }else{ 
     echo "alert('errorr')"; 
    } 
} 
?> 
+0

你說的是Jquery IF語句還是PHP IF語句? –

+2

請勿使用MD5密碼。 password_hash/password_verify – mkaatman

+0

當你回顯$ data ['email_user']時會發生什麼 –

回答

0

是的它會永遠在其他部分,因爲你沒有從PHP文件生態成功,那麼它將如何成功進入!!! ?? 改變你的PHP腳本

<?php 
session_start(); 
if(isset($_POST['email'])){ 
    include "../../../konten/koneksi.php"; 
    $email = $_POST['email']; 
    $pass = md5($_POST['password']); 
    $sql_login = "select * from user where email_user ='$email ' AND password_user='$pass'"; 
    $run_login = mysql_query($sql_login); 
    $data = mysql_fetch_array($run_login); 
    if(isset($data['email_user'])){ 
     $_SESSION['email_user'] = $data['email_user']; 
     $_SESSION['status'] = $data['status']; 
     echo "success"; 
    }else{ 
     echo "error"; 
    } 
} 
?> 

而且標誌不使用MySQL的*其棄用,在PHP7完全刪除。使用的mysqli *PDO代替

0

在你的代碼,你的選擇查詢有$電子郵件後的空間,還需要如果執行時,你的條件呼應成功。提示您的PHP代碼如下:

<?php 
    session_start(); 
    if(isset($_POST['email'])){ 
     include "../../../konten/koneksi.php"; 
     $email = $_POST['email']; 
     $pass = md5($_POST['password']); 
     $sql_login = "select * from user where email_user ='".$email."' AND password_user='".$pass."'"; 
     $run_login = mysql_query($sql_login); 
     $data = mysql_fetch_array($run_login); 
     if(isset($data['email_user'])){ 
      $_SESSION['email_user'] = $data['email_user']; 
      $_SESSION['status'] = $data['status']; 
      echo "success"; 
     }else{ 
      echo "alert('errorr')"; 
     } 
    } 
    ?> 

希望這會有所幫助!

1
  • 您需要在您的PHP腳本響應中使用echo "success"
  • 分號(;)失蹤md5($_POST['password']);

    $email = $_POST['email']; 
    $pass = md5($_POST['password']); 
    $sql_login = "select * from user where email_user ='$email' AND password_user='$pass'"; 
    $run_login = mysql_query($sql_login); 
    $data = mysql_fetch_array($run_login); 
    if(isset($data['email_user'])){ 
        $_SESSION['email_user'] = $data['email_user']; 
        $_SESSION['status'] = $data['status']; 
        echo "success"; 
    }else{ 
        echo "error"; 
    } 
    
0

請確保所有 「password_user」 一欄包含在數據庫中的MD5字符串。因此,您必須在用戶註冊時將md5存儲爲密碼。數據庫中的用戶「reza」有一個非md5條目。所以這個用戶md5($_POST['password'])在數據庫中將不匹配。

並在PHP腳本的IF語句中寫入echo 'success';