0

好的,所以我正在使用 jQuery 和 Cordova 尝试登录到 mySQL 数据库。遇到一些问题,也许有人可以帮助我。

        <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>

这是我在 head 标签中的 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 和网站的移动版本,因为这个项目才刚刚开始阶段。希望在某个时候回到这个问题并使其正常工作。再次感谢您的帮助。

4

2 回答 2

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 "";
    }
    } 
    ?>
于 2012-08-02T04:29:38.953 回答
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 ...
     }
}

祝你好运。

注释: PHP 准备好的语句参考,Google “secure password storage with salt”,在jsfiddle.net上玩

于 2012-08-02T04:24:24.677 回答