php - Phonegap (Cordova) jQuery Ajax 登录

标签 php jquery mysql cordova

好的,我正在使用 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 并且只使用网站的移动版本,因为该项目才刚刚起步。希望在某个时候回到这个问题并使其正常工作。再次感谢您的帮助。

最佳答案

您的代码有几个问题:

  1. 你应该为这个请求使用 POST 并且我假设你想在你的成功函数检查中使用 result 值(可以考虑返回一个带有 状态).
  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 prepared statement reference ,谷歌“用盐保护密码存储”,在jsfiddle.net上玩

关于php - Phonegap (Cordova) jQuery Ajax 登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11770836/

相关文章:

php - 退出并显示 PHP/HTML 中的错误消息

jquery - 使用 Jquery "empty"删除 div 的内容不起作用

javascript - Jquery点击事件但不按住/标记文本事件

php - 函数以增量值输出并以html显示

php - Laravel 查询转义句点 (.)

php - 处理团队成员之间的数据库相关项目

PHP 需要获取一个对象的属性值,但是该属性有一个复杂的键

php - 通过参数传递对象的键

javascript - php post 无法使用 header 和 ajax 工作

javascript - 两个 Css 文件具有相同的类 - 从特定类中删除类,如何?