首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试使用Phonegap进行php登录

问尝试使用Phonegap进行php登录
EN

Stack Overflow用户
提问于 2016-05-18 19:33:36
回答 1查看 396关注 0票数 0

我知道要在Phonegap中使用登录/注册系统,你必须在你的php中使用aJax。我已经有了一个成功的php登录和注册页面,但我不确定从哪里开始jQuery / aJax,也就是我打算把它放在哪里,以及我到底应该放什么。我想知道有没有人知道怎么给我指路。

EN

回答 1

Stack Overflow用户

发布于 2016-05-18 20:49:40

jQuery

jQuery是一个建立在Javascript上的框架。Javascript是一种客户端(浏览器)语言。它在你的设备上运行,不像PHP在服务器上执行。

您需要使用脚本标记在登录页面的超文本标记语言中包含jQuery:

代码语言:javascript
复制
<script src="https://code.jquery.com/jquery-2.2.3.min.js"></script>

jQuery提供了一种方法来定位文档中的任何html元素,并对该元素执行某些功能。您可以使用以下语法指定哪个元素:

代码语言:javascript
复制
$(element).doSomething();

您可以选择类或ID:

代码语言:javascript
复制
<p id="myparagraph">A paragraph of text</p>
<p class="myparagraphclass">A paragraph of text</p>

$('#myparagraph').doSomething();
$('.myparagraphclass').doSomething();

AJAX

AJAX是Javascript引入的一种方法,它允许页面请求另一个url以及该请求的结果。您将需要使用AJAX登录Cordova/Phonegap,因为您正在构建的“应用程序”是基于Javascript的。

谢天谢地,jQuery提供了一些非常好用且易于使用的AJAX方法。

把它们放在一起

我从前面的问题中注意到,您已经创建了一个PHP脚本来检查登录凭据是否正确。Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given in /public_html/access/login.php on line 15

在这个问题(//login.php)中,我稍微编辑了一下代码:

代码语言:javascript
复制
    require_once($_SERVER['DOCUMENT_ROOT'] . "/html5up-aerial/access/functions.php");
    $username = trim($_POST['username']);
    $password = trim($_POST['password']);
    if ($username&&$password) {
            session_start();
            require_once($_SERVER['DOCUMENT ROOT'] . "db_connect.php");
            mysqli_select_db($db_server, $db_database) or
                                                die("Couldn't find db");
            $username = clean_string($db_server, $username);
            $password = clean_string($db_server, $password);

            $query = "SELECT * FROM users WHERE username='$username'";
            $result = mysqli_query($db_server, $query);
            *if($row = mysqli_fetch_array($result)){*
               $db_username = $row['username'];
               $db_password = $row['password'];
               if($username==$db_username&&salt($password)==$db_password){
                  $_SESSION['username']=$username;
                  $_SESSION['logged']="logged";
                  //header('Location: home.php'); // Have commented this out
                  $message = "YOU ARE NOW LOGGED IN!"; // <- ADDED THIS
               }else{
                   $message = "<h1>Incorrect password!</h1>";
               }
            }else{
                $message = "<h1>That user does not exist!</h1>" . 
                                "Please <a href='index.php'>try again</a>";
            }
            mysqli_free_result($result);
            require_once("db_close.php");
        }else{
            $message = "<h1>Please enter a valid username/password</h1>";
        }
        //header/footer only required if submitting to a seperate page

        echo $message; // ADDED THIS
        die(); // ADDED THIS

这将是AJAX请求的PHP脚本。

现在我们创建一个带有登录表单的超文本标记语言文档,并包含jQuery并编写ajax代码:

代码语言:javascript
复制
<script src="https://code.jquery.com/jquery-2.2.3.min.js"></script>

<form class="login-form" method="post">
  Username: <input name="username" /><br />
  Password: <input name="password" type="password" /><br />
  <input type="submit" value="Login" />
</form>


<script>
    $('.login-form').on('submit', function(e) { // Listen for submit

        e.preventDefault(); // Don't actually submit the form
        var data = $(this); // Put the form in a variable

        $.ajax({
            type: "POST",
            url: '/access/login.php',
            data: $(data).serialize(), // Make form data into correct format
            success: function(response) {
               alert(response); // Alert with the response from /access/login.php
            }
        });  
    });
</script>

要调试这段代码,您需要使用Chrome开发工具栏或Firefox Firebug。希望这能有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37298376

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档