2012-08-02 145 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