2013-03-25 92 views
0

我想轉換我的登錄頁面使用HTML和使用jQuery和PHP來獲取和處理結果,原因是如果我想移動與我的項目,那麼我幾乎在那裏。將變量從php傳遞迴jquery?

我遇到的問題是將變量從php傳遞迴jquery以同時顯示。

我的例子 的index.html

<!DOCTYPE HTML> 
<html> 
<head> 
    <meta name="viewport" content="width=device-width, initial-scale=1">  
    <meta http-equiv="Content-type" content="text/html; charset=utf-8"> 
    <title>Auth Demo 2</title> 
    <script src="jquery/jquery-1.7.2.min.js"></script> 
    <script src="main.js"></script> 
</head> 

<body onload="handleLogin()"> 

     <form id="loginForm"> 

      <label for="email">Email:</label> 
      <input type="text" name="email" id="email" value="" placeholder="email" /> 



      <label for="password">Password:</label> 
      <input type="password" name="password" id="password" value="" placeholder="Password" /> 


     <input type="submit" value="Login" id="submitButton"> 
     </form> 

</body> 
</html> 

main.js

function handleLogin(){ 

     var form = $("#loginForm"); 
     var u = $("#email", form).val(); 
     var p = $("#password", form).val(); 

     if(u!= '' && p!= '') { 
      $.post("http://www.mysite.co.uk/login.php",{ 
         email:$('#email', form).val(), 
         password:$('#password', form).val(), 
         rand:Math.random() 
         } ,function(data) 
          { 
          if(data=='yes') //if correct login detail 
          { 
           alert("Request success: "); 
          } 
          else 
          { 
            //add reason in alert box here 
            alert ("failed reason") 
           } 
        }); 
     } else { 
        alert("Username/password empty"); 
       } 
     return false;//not to post the form physically 

    } 

的login.php

<?//get the posted values 
require_once("../backend/functions.php"); 
dbconn(true); 


if ($_POST["email"] && $_POST["password"]) { 
    $password = passhash($_POST["password"]); 

    if (!empty($_POST["email"]) && !empty($_POST["password"])) { 
     $res = SQL_Query_exec("SELECT id, password, secret, status, enabled FROM users WHERE email = " . sqlesc($_POST["email"]) . ""); 
     $row = mysql_fetch_assoc($res); 

     if (! $row || $row["password"] != $password) 
      $message = "Wrong password"; 
     elseif ($row["status"] == "pending") 
      $message = "Account Pending"; 
     elseif ($row["enabled"] == "no") 
      $message = "Account Suspened"; 
    } else 
     $message = "No Username/password added"; 

    if (!$message){ 
     logincookie($row["id"], $row["password"], $row["secret"]); 
     if (!empty($_POST["returnto"])) { 
      header("Refresh: 0; url=" . $_POST["returnto"]); 
      die(); 
     } 
     else { 
      echo "yes"; 
      die(); 
     } 
    }else{ 
     echo $message; 
    } 
} 

logoutcookie(); 

當登錄失敗有我想要的各種原因,你可以看到返回到警報框。什麼是最好的方式去做這個

+0

我花了正好2分鐘格式化你的答案(用奇怪的fromatting)......該死的!!我仍然看到一些額外的空間.. :( – bipen 2013-03-25 11:43:22

+0

你沒有提交表格任何地方。 – Jai 2013-03-25 11:45:15

+1

對不起Bipen下次會確定它的整潔 – 2013-03-25 11:58:43

回答

1

只是警報數據

if(data=='yes') //if correct login detail 
    { 
     alert("Request success: "); 
    } 
    else{ 
     alert (data) 
    } 

但是我recommmend獲得響應的JSON .....

if(u!= '' && p!= '') { 
    $.post("http://www.mysite.co.uk/login.php",{ 
       email:$('#email', form).val(), 
       password:$('#password', form).val(), 
       rand:Math.random() 
     } ,function(data) 
      { 
       if(data=='yes') //if correct login detail 
       { 
        alert("Request success: "); 
       } 
       else 
       {              //add reason in alert box here 
        alert (data) 
       } 
      }); 

    } else { 
     alert("Username/password empty"); 
    } 

    return false;//not to post the form physically 
    } 
+0

這工作謝謝,我會研究json,因爲你們都推薦它,我確定一旦我得到它的把握。它將在未來幫助我;) – 2013-03-25 12:08:08

+0

歡迎..並看看JSON ...它更好地使用... :)):)...快樂的編碼.. :) – bipen 2013-03-25 12:10:40

0

做到這一點的最好方法是使用$ .ajax()並使用「XML」類型。然後讓login.php返回一個XML文件,其中包含您需要的任何參數(用戶標識,錯誤消息(如果有),用戶名等)。然後,您可以使用jQuery解析XML文件以立即使用這些變量。無論如何,處理後端錯誤更爲安全。

0
function handleLogin(){ 

    var form = $("#loginForm"); 
    var u = $("#email", form).val(); 
    var p = $("#password", form).val(); 

    if(u!= '' && p!= '') { 

     jQuery.ajax({ 
      type: "POST", 
      url: "http://www.mysite.co.uk/login.php", 
      data: 'username='+u+'&password='+p+'&rand='+Math.random(), 
      complete: function(data){ 

       if(data.responseText == 'yes'){ 
        alert("Request success: "); 
       }else{ 
        alert("failed: "); 
       } 

     }); 

    } else { 

     alert("Username/password empty"); 

    } 

    return false;//not to post the form physically 

}