如何使用javascript通过url检查用户名和密码

时间:2015-05-06 09:41:05

标签: javascript jquery-mobile intel-xdk

我正在使用intel xdk工具和jquery移动框架为UI开发混合应用程序。我正在尝试实现登录功能,这意味着我只需输入用户名和密码,然后单击提交按钮。而cliking按钮我调用javascript函数检查用户名和密码是否正确。这是我登录的javascript函数

 var user, pwd ;
 var xmlHttp = null;
 var val;
 $("#Login").click(function(event){
 event.preventDefault();
 user = $("#username").value() ;
 pwd = $("#password").value() ;
 validateForm();
});

    function validateForm() {
        var url ="http://schoolsmartconnect.com/android/parent_login.php?key=agile89rise98&username="+user+"&password="+pwd;                
        xmlHttp = new XMLHttpRequest();
        xmlHttp.onreadystatechange = ProcessRequest;
        xmlHttp.open( "POST", Url, true );
        xmlHttp.send( null );
            if (val == "1") {
                window.location = "page2.html";
                return true;
            }
            else {
                alert ("Login was unsuccessful, please check your username and password");
                return false;
            }
      }

    function ProcessRequest() 
    {
        if ( xmlHttp.readyState == 4 && xmlHttp.status == 200 ) 
        {
            if ( xmlHttp.responseText == "1" ) 
            {

                var val = xmlHttp.responseText;

            }                 
        }

    } 

这是我的severside PHP脚本

<?php 
require_once 'db.php';

$user = base64_decode($_REQUEST['username']);
$pass = base64_decode($_REQUEST['password']);
$key = $_REQUEST['key'];
$password = md5($pass);
if($key=="agile89rise98"){
//echo $password;
$query = mysql_query("SELECT * FROM puserprofile WHERE username ='$user' AND password = '$password' and Status=1");
$rownum = mysql_num_rows($query);

if(0 < $rownum)
{       
    echo 1; 
}
else
{
    $query2 = mysql_query("SELECT * FROM puserprofile WHERE username ='$user' and Status=1");
    $rownum2 = mysql_num_rows($query2);
    if(0 == $rownum2) {
        $query3 = mysql_query("SELECT * FROM puserprofile WHERE password = '$password' and Status=1");
        $rownum3 = mysql_num_rows($query3);
        if (0 == $rownum3) {
        echo 0;
        }
        else if(!preg_match('/^[A-Za-z]{1}[A-Za-z0-9]{5,31}$/', $user){
        echo "username invalid";
        }
        else {
        echo "Invalid username";
        }


    } else {    
        $query3 = mysql_query("SELECT * FROM puserprofile WHERE password = '$password' and Status=1");
        $rownum3 = mysql_num_rows($query3);
        if (0 == $rownum3) {
        echo "Invalid password";
        } else {
            echo 0;             
        }
    }   
}
}

?>

我的要求: -

我确信我的PHP脚本是正确的,但在我的javascript函数中,我必须将我的用户名和密码请求发送到服务器并获得响应,如果我的响应等于“1”,那么它重定向适当的页面,否则它应该显示错误消息

1 个答案:

答案 0 :(得分:0)

根据您的需要,为什么不从输入字段中检索用户名和密码,而不是从网址中获取用户名和密码。 从输入字段中获取值并验证它们很容易。
做这样的事情

<input type="text" id="user"/>
<input type="password" id="pwd"/>
<input type="submit" id="submit"/>


在脚本中,执行此操作

var user, pwd ;
$("#submit").click(function(event){
event.preventDefault();
user = $("#user").value() ;
pwd = $("#pwd").value() ;
validateForm();
});



更新
现在脚本将如下所示

var user, pwd ;
 var xmlHttp = null;
 var val;
 $("#Login").click(function(event){
 event.preventDefault();
 user = $("#username").value() ;
 pwd = $("#password").value() ;
 validateForm();
});

function validateForm() {
    var url ="http://schoolsmartconnect.com/android/parent_login.php?key=agile89rise98&username="+user+"&password="+pwd;                
    xmlHttp = new XMLHttpRequest();
    xmlHttp.onreadystatechange = ProcessRequest;
    xmlHttp.open( "GET", url, true );
    xmlHttp.send( null );
  }

function ProcessRequest() 
{
    if ( xmlHttp.readyState == 4 && xmlHttp.status == 200 ) 
    {
        if ( xmlHttp.responseText === "1" ) 
        {

            var val = xmlHttp.responseText;
            if (val == "1") {
                window.location = "page2.html";
                return true;
            }
            else {
                alert ("Login was unsuccessful, please check your username and password");
                return false;
            }

        }                 
    }

}