2012-08-02 124 views
0

好的,所以我使用jQuery和Cordova来尝试登录到mySQL数据库。有些问题可能会有人帮助我。Phonegap(科尔多瓦)jQuery Ajax登录

 <script type="text/javascript" charset="utf-8" src="cordova-2.0.0.js"></script> 
    <script type="text/javascript" charset="utf-8" src="jquery-1.7.2.min.js"></script> 
    <script type="text/javascript" charset="utf-8" src="jquery.mobile-1.1.1.js"></script> 
    <script type="text/javascript" charset="utf-8"> 
     function login() { 
      $(document).ready(function() { 
           var user = $("#user")[0].value; 
           var pass = $("#pass")[0].value; 
           $.ajax({ 
            type: "GET", 
            url: "http://www.greekhighlight.com/mob_login.php", 
            data: "users"+user+"&pass="+pass, 
            success: function(result){ 
            if (value){ 
            $("#message")[0].value = "Success "+result; 
            } else { 
            $("#message")[0].value = "error"; 
            } 
            }); 

     } 
           }; 
     </script> 

这是我的JavaScript头标记。

 <form> 
     Username: <input type="text" size="25" id="user" onkeyup= "login()" /> 
     <br /> 
     Password: <input type="text" size="25" id="pass" onkeyup= "login()"/> 
     <br /> 
     <input type="text" size="25" id="message" value="error" /> 
     </form> 

这是我的HTML表单。

<?php 
$user = $_REQUEST['user']; 
$pass = $_REQUEST['pass']; 
include('php/connect.php'); 

$result = mysql_query("SELECT email, password, userid FROM users WHERE email = '$user'"); 
while($row = mysql_fetch_array($result)){ 
if(md5($pass) == $row["password"]){ 
    echo $row["userid"]; 
} else { 
    echo ""; 
} 
} 
?> 

这里是我的PHP文件。

这是我第一次使用Phonegap等的经验,所以我希望这不是我只是俯视。我的连接文件是正确的。我所遵循的教程取得了成功,所以我不确定我的原因。

如果有人能给我一个正确的方向,我希望我能弄明白。

在此先感谢。

更新:决定使用Aurigma Up,并且只是该网站的移动版本,因为此项目仅处于开始阶段。希望在某个时候回到这个问题上并使其正常工作。再次感谢您的帮助。

+0

为什么你正在使用的onkeyup火为什么不能每次都用的onclick添加按钮的功能,你输入的东西它触发了JS偶数尽管这是怎么样的密码某些字段为空 – 2012-08-02 04:00:00

+0

在教程中。它应该是一个“即时”结果,就像一个真正的例子。我明白你在说什么,但最终应该如何。但是,如果它不能即时运作,不幸的是它也不会。 我可以尝试做一个onClick只是为了看看。 – tluck234 2012-08-02 04:03:31

+0

你仍然可以尝试我会开始在网络上使用onclick进行测试 – 2012-08-02 04:04:32

回答

2

有你的代码的几个问题:

  1. 你应该使用POST这个请求,我假设你想在你成功的功能检查,以使用result值(也许考虑返回一个JSON OBJ与status )。
  2. 你的ajax.data应该更多沿这条线{"user":user,"pass":pass}
  3. 你的php代码是不安全的,应该使用准备好的语句。
  4. 存储密码为md5(password)这是一个很大的不是,做一些关于更好/安全散列函数的研究。
  5. 您的登录事件是onkeyup

一些例子来为你指明正确的方向

HTML:

... 
<input type="text" size="25" id="pass"/> 
... 
<input type="button" id="#login_button" value="Login"> 
... 

JS:

$(document).ready(function() { 
    $('#login_button').click(function() { 
     // ... ajax request here ... 
    }); 
}); 

PHP:

$stmt = $con->prepare('SELECT email, password, userid, salt FROM users WHERE email = ?'); 
$stmt->bind_param($email); 
$stmt->bind_result($hash,$salt); 
$stmt->execute(); 
if ($stmt->fetch_result()) { 
    if (hash('sha512',$password.$salt)==$hash) { 
     // ... OK ... 
    } 
} 

Goodluck。

注: PHP prepared statement reference,谷歌“安全密码的存储与盐”,玩弄于jsfiddle.net

+0

您的文章非常有见地,我将阅读这篇文章。希望能够实现这一点。我现在要休息一下,因为我仍然有问题,明天就打了。 – tluck234 2012-08-02 04:46:19

2

试试这个我也想确保您使用对查询注射一些保护你的php结束

HTML

<form> 
    Username: <input type="text" size="25" id="user" onkeyup= "login()" /> 
    <br /> 
    Password: <input type="text" size="25" id="pass" onkeyup= "login()"/> 
    <br /> 
    <input type="text" size="25" id="message" value="error" /> 
    <input type="button" value="Submit" onclick="login()"/> 
    </form> 

的JavaScript

function login() { 
      $(document).ready(function() { 
      var user = $("#user").val(); 
      var pass = $("#pass").val(); 
    $.ajax({ 
      url: "http://www.greekhighlight.com/mob_login.php", 
      type: "GET",   
      data: { username: user, password: pass }  
      cache: false, 
      success: function (html) { 
       alert(html);  
      } 
      }); 
     }); 
} 

和你的PHP

<?php 
    $user = $_GET['username']; 
    $pass = $_GET['paswords']; 
    include('php/connect.php'); 

    $result = mysql_query("SELECT email, password, userid FROM users WHERE email = '$user'"); 
    while($row = mysql_fetch_array($result)){ 
    if(md5($pass) == $row["password"]){ 
     echo $row["userid"]; 
    } else { 
     echo ""; 
    } 
    } 
    ?> 
+0

仍然有它的麻烦..要休息一晚。再次感谢伟大的职位。明天继续工作,希望能给你一个答案。 – tluck234 2012-08-02 04:47:50