很少会发现一个有吸引力的网站不建议客户创建帐户。为此,他们需要为新用户提供自行注册的设施,然后使用其帐户登录并与网站交互。 PHP 公开了足够的实用程序来快速设置功能性登录页面,并且稍后还可以根据需要进行扩展。设置基本登录表单来请求凭据后,可以使用相同的 PHP 脚本来处理和验证凭据,并在成功登录时重定向到相应的页面。它还提供了创建和存储 cookie 和会话的选项,以便在用户完成登录过程后跟踪用户。
广告 该类别中的热门课程 PHP 开发人员 - 专业化 | 8 门课程系列 | 3次模拟测试开始您的免费软件开发课程
网络开发、编程语言、软件测试及其他
PHP 是一种可扩展的无状态服务器端脚本语言。它允许人们通过将表单数据存储在数组 $_GET 或 $_POST 中来捕获表单数据,具体取决于提交表单时使用的方法是 GET 还是 POST。通常,出于安全原因,首选 post 方法。提交后,这些数组可以通过输入字段名称进行索引来获取具体值。
对于登录表单,凭据被传递并存储在这些数组中,这些数组通常只是一组用户名和密码。根据需求,可以在 PHP 代码本身中直接验证用户名和密码组合,或者可以将有效的用户名、密码组合集存储在可以查找的数据库中。
让我们创建一个页面 Login.php,其中包含以下 HTML 行:
代码:
<html> <head>A sample login page</head> <body> <h2>Enter Login Information:</h2><br> <form action="" method="post"> <label>Username : </label><input type="text" name="username" /><br/> <label>Password : </label><input type="password" name="pwd" /><br/> <input type="submit" value="Login" /> </form> </body> </html>
输出:
这些行创建了一个非常简单的表单,要求用户输入两个字段:用户名和密码。它提供第三个输入,即提交按钮,并导致表单数据(即用户名和密码)发送到表单标记的操作属性中提到的位置。由于上面是空的,所以它将表单信息传递到同一个 PHP 页面。
上面的页面是静态 HTML 代码,没有实际验证用户或将用户登录到内部网页。为此,我们需要处理存储在 $_POST 中的 username 和 pwd 字段中传递的值,因为使用了 posts 方法。
因此可以使用以下方法检查是否存在值:
代码:
<?php $error = ""; if(isset($_POST['username']) && isset($_POST['pwd'])){ // check for validity } ?>
验证两个输入确实存在后,我们可以验证它们的值并将人员重定向到适当的欢迎页面。
我们可以通过在上面所示的 if 语句块中插入以下简单的代码来实现此目的:
代码:
$username = $_POST['username']; $password = $_POST['pwd']; if($username == "admin" && $password == "l0G3In"){ header('location: Home.php'); } else { $error = "Invalid username or password!"; }
通过上述几行,一旦用户提交了一组有效的凭据,他就可以访问 home.php,或者我们存储一条可以向用户显示的错误消息。
我们不希望用户在每次请求时都重复登录。因此,我们需要跟踪已登录的用户,无论他们请求哪个页面。在 PHP 中实现此目的的一种方法是使用会话。
简单来说,会话是服务器端的一小段信息,在请求页面后为客户端临时存储。在 PHP 中,这是通过调用函数 session_start() 作为脚本中的第一行来实现的。从下次访问页面开始,session_start()不会创建新的会话,而是检索之前启动的会话的信息,并将其存储在一个特殊的数组$_SESSION中。
会话处于活动状态时跨页面传递的值可以以与普通数组类似的方式设置,并且 isset() 函数可用于检查数组中是否存在特定值。
结合所有讨论的内容,代码将如下所示:
代码:
A sample login pageEnter Login Information:
输出:
现在,任何其他需要登录的页面只需要检查会话密钥登录是否已设置。如果没有,用户可以被重定向到登录页面。否则他就可以访问秘密的内部内容。
让我们创建一个用于演示目的:
代码:
<?php session_start(); if(!isset($_SESSION["login"]) || $_SESSION["login"]!=True){ header('location: Login.php'); } ?> <html> <head>Welcome to User's Home Page</head> <body> <h2>Wishing you a good day!!</h2><br> </body> </html>
输出:
上面的代码首先通过调用 session_start() 来检索会话详细信息。然后,它验证会话对于已完成登录过程的用户仍然处于活动状态。如果没有,用户将被发送到 Login.php 页面。如果用户已成功登录,则其余内容可供用户使用。
用 PHP 创建登录页面非常容易。在这里,我们直接将凭据存储在脚本中,但理想情况下(也是最常见的)它们将存储在某种形式的数据库或密钥管理器中。另外,这里我们使用了会话,它存储在浏览器端,但是您可以使用存储在浏览器(客户端)端但不太可靠的 cookie。
以上是PHP 中的登录页面的详细内容。更多信息请关注PHP中文网其他相关文章!