2013-03-10 36 views
0

基於會話的登錄有問題(使用PHP,HTML和CSS實現)。到現在爲止還挺好。現在,當您輸入錯誤時,我想要顯示警告。首先,我創建了第二個頁面,並附加了一條警告。但是最好在AJAX中實現這一點(也許使用jQuery)。但現在我有一個問題。由於我已經實現了AJAX部分,我無法登錄。每次出現警告。當我刪除AJAX請求的所有作品。似乎PHP驗證部分不再被調用。但我不知道爲什麼。以下是代碼:基於會話的登錄系統 - 通過AJAX發出警告

這是驗證(loginscript.php)的一部分。登錄表單具有名稱loginform和submit.button名稱登錄。

else if (isset($_POST['login'])) 
{ 
    $username = $_POST['username']; 
    $password = $_POST['password']; 

    $clean_username = strip_tags(stripslashes(mysql_real_escape_string($username))); 

    $clean_password = (strip_tags(stripslashes(mysql_real_escape_string($password)))); 

    $hash_password = saltedHash($clean_password, $clean_username); 

    $sql = mysql_query("SELECT * FROM $loginTable WHERE $attUsername = '$clean_username' AND $attPassword = '$hash_password'"); 

    if (mysql_num_rows($sql) == 1) 
    { 
     $_SESSION['logged'] = true; 
     echo 'correct'; 
     header('refresh:2;url=ajax/cmapp.php'); 
     exit; 
    } 
} 

的顯示部分doesn't工作,因爲我用的就是:

$(document).ready(function() 
{ 
$("#tr1").hide(); 
/* sendung formular abfangen */ 
$("#loginform").submit(function() { 
           /* ajax objekt zum aufruf & versand an das skript 
    'name' und 'email' sind in der data-zeile die variablen für das php-skript */ 
    $.ajax({ 
     type: "POST", 
     url: "loginscript.php", 
     data: "username=" + $("#username").val() + "&password=" + $("#password").val(), 
     success: function(msg) 
     { 
      if (msg == 'correct') 
       { 
        alert("hjlkjl") 
        window.location='ajax/cmapp.php'; 
       } 
      else 
       { 
        $("#tr1").hide().load("message.html").fadeIn(0); 
       } 

每次else部分被執行。

+1

下載? '.txt'?在你的問題中包含代碼!如果代碼很長,那麼你可能需要修剪它。此外,你的問題還沒有包含問題。 – Zeta 2013-03-10 13:32:06

+0

考慮在問題主體中添加相關代碼... – Rafay 2013-03-10 13:32:30

+0

@MRae:我們喜歡這裏的問題代碼,以便斷開的鏈接不會影響未來問題的用處。 – halfer 2013-03-10 13:35:44

回答

1

你的data值應該包括一個login變量,否則PHP腳本將不會進入條件。並且由於您使用POST,因此您可以使用一個對象作爲data的值

data : { 
    username : $("#username").val(), 
    password : $("#password").val(), 
    login : true, 
} 
+0

好的,我試過了。但沒有成功。每次執行else分支時... – MRae 2013-03-10 14:29:30

+0

嘗試調試。看看你的PHP腳本實際返回。 '成功:功能(味精){console.log(味精)..'並看看JavaScript控制檯。或將'$ _POST'更改爲'$ _REQUEST',然後使用url參數('loginscript.php?login&username = xxx&password = xxx')打開php頁面,並查看它顯示的內容。 – lordvlad 2013-03-10 16:35:07

+0

另外,擺脫'header(「refresh ...'行 – lordvlad 2013-03-11 07:16:40