1

我为我的 HTTP 文件服务器编写了一个有效的 php 身份验证脚本。现在,我想用一些漂亮的图形编写一个登录页面。我通常用 HTML5、javascript 和 CSS 编写我的页面。我不确定如何实现 php 身份验证脚本。到目前为止,我有两种我认为我知道的方法:

  1. 用 html5 和 javascript 编写登录页面,在用户在输入框中输入名称/密码后使用 ajax 调用 php 脚本,将用户名和密码传递给脚本,并让 php 根据该用户是否经过身份验证返回真或假. 问题是,我不知道如何让 php 返回 true 或 false 到 javascript。

  2. 编写一个 PHP 前端控制器模型,其中 index.php 为图形加载 html5、javascript 和 css,如果用户通过身份验证,则重定向到 html 文件服务器的普通 index.html 文档。这个问题是我不熟悉使用 php 作为前端控制器,我不知道我是否可以使用 javascript 动态更改元素以获得特殊效果,就像它是一个普通的 html5 页面一样。

4

3 回答 3

0

您可以使用jQuery库来发出 Ajax 请求。请求看起来是这样的(它是 javascript):

function submitLogin(enteredUsername, enteredPassword) {

  $.post('login.php', {username: enteredUsername, password:enteredPassword},   
  function(response) {
      if (response.result == true) {
         // success code here
      } else {
         // fail code here
      }
  }, 'json');
}

login.php 文件应包含以下代码:

<?php

$username = $_POST['username'];
$password = $_POST['password'];
//... check username and password here
echo json_encode(array('result' => true)); // this is response, true or false
exit;

?>
于 2012-10-25T02:38:46.827 回答
0

在 freenode 上做了很多询问之后,我发现最好将文档隐藏在 web 根目录之外,并在从 index.php 进行用户身份验证后,让像 php 这样的服务器端脚本自行为它们服务。

我可以使用来自 nginx 的 auth_basic,但我想要更强大的加密或散列 - 因此需要一种服务器脚本语言。我想像 facebook 这样的大鱼使用像 auth_basic 模块这样的网络服务器身份验证......但是一个更加定制和开发的版本。所以,在我的情况下,我会将文件放在 web 根目录之外。

于 2012-10-26T05:33:38.537 回答
-2

我建议第一个解决方案。您可以使用http://api.jquery.com/jQuery.post/ 让您的 php 返回到 javascript。

于 2012-10-25T02:31:46.093 回答