登录页面无法使用php在phonegap中工作

时间:2012-08-20 12:36:10

标签: php android cordova android-emulator phonegap-plugins

朋友您好我是Phonegap的新手,我使用 PHP 制作简单的登录应用程序。 我有类似的文件类型:

  1. 的index.html
  2. mob_login.php
  3. cordova.xml
  4. 所以我的问题是当我在android上的phonegap上运行我的程序时,我的 mob_login.php 文件无效。

    • 在我的index.html文件中,我的网址是网址:“http://10.0.0.2/mob_login.php”,我的PHP文件在我的本地主机上。如何在我的手机屏幕上访问此文件。
    • 并在我的cordova.xml文件中更改 access origin =“http://10.0.0.2*”
    • 所以请高举我在哪里更改我的文件以及如何解决错误。

    我的index.html文件是: -

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>PhoneGap Login</title>
        <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() {
            $.support.cors = true;
            $.mobile.allowCrossDomainPages = true;
    
                $(document).ready(function() {
                                  var user = $("#user")[0].value;
                                  var pass = $("#pass")[0].value;
    
                                  $("#message")[0].value = "In function "+user +"  "+ pass;                                      
                                  $.ajax({
                                         type: "POST",
                                         url: "http://10.0.0.2/mob_login.php",
                                         data: "users"+user+"&pass="+pass,
    
                                         success: function(result){
    
                                         $("#message")[0].value = result;
                                         alert("Result "+result);
                                         }
                                         });
            });
                                  }
            </script>
    
    
    
    </head>
    
    <body>
        <form>
            Username: <input type="text" size="25" id="user"/>
            <br />
            Password: <input type="text" size="25" id="pass"/>
            <br />
            <input type="text" size="25" id="message" value="error message" />
            <br />
            <input type="button" value="Submit" onclick="login()"/>
            </form>
    
    </body>
    </html>
    

    和我的mob_login.php文件是: -

    <?php
    $user = $_REQUEST['user'];
    $pass = $_REQUEST['pass'];
    
    if($pass == "123" && $user == "kirit"){
        echo "Login Sucsess";
    } else {
        echo "Login Fail";
    }
    ?>
    

    我的cordova.xml文件是: -

    <?xml version="1.0" encoding="utf-8"?>
    
    <cordova>
        <access origin="http://10.0.0.2*"/> 
        <log level="DEBUG"/>
        <preference name="useBrowserHistory" value="false" />
    </cordova>
    

    这是我的文件,我怎么能解决问题,请尝试多种方式,但我无法解决,请朋友帮帮我吗?

2 个答案:

答案 0 :(得分:1)

u placed users in ajax code instead of "user=" try below code    


$.ajax({
                                 type: "POST",
                                 url: "http://ipaddress of ur system/JQuery/mob_login.php",
                                 data: "user="+user+"&pass="+pass,

                                 success: function(result){

                                 $("#message")[0].value = result;
                                 alert("Result "+result);
                                 }
                                 });
    });

答案 1 :(得分:0)

问题是你需要在点击时进行AJAX调用,而不是在文档加载完成后。这是一个问题:

var user = $("#user")[0].value;
var pass = $("#pass")[0].value;

此代码在页面加载时执行,但在那一刻,用户和传递输入具有空值。单击登录按钮时,您需要更改代码以进行此分配。

此外,你可以删除'ready'监听器,只需编写登录函数:

function login() {
    $.support.cors = true;
    $.mobile.allowCrossDomainPages = true;

    var user = $("#user").val();
    var pass = $("#pass").val();

    $("#message").text("In function "+user +"  "+ pass);                                      
    $.ajax({
        type: "POST",
        url: "http://10.0.0.2/mob_login.php",
        data: "users"+user+"&pass="+pass,

        success: function(result) {

            $("#message")[0].value = result;
            alert("Result "+result);
        }
    });
}

代码中的问题是,当调用login函数时,ready事件已经被调度,因此ajax请求永远不会被发送到服务器。

希望这会有所帮助。祝你有美好的一天。