PHP登录:在登录用户和未登录用户之间显示不同内容的最佳方式

PHP登录:在登录用户和未登录用户之间显示不同内容的最佳方式,php,authentication,login,Php,Authentication,Login,我正在学习PHP,我正在开发一个带有身份验证的非常简单的网站。由于我认为自己不够好,无法建立一个安全的身份验证系统(无论如何,我没有那么多时间),我搜索并找到了这个脚本,它似乎工作得很好。 我使用的是“2-advanced”版本的脚本,在index.php文件中有如下内容: <?php // load php-login components require_once("php-login.php"); // create a login object. when this object

我正在学习PHP,我正在开发一个带有身份验证的非常简单的网站。由于我认为自己不够好,无法建立一个安全的身份验证系统(无论如何,我没有那么多时间),我搜索并找到了这个脚本,它似乎工作得很好。 我使用的是“2-advanced”版本的脚本,在index.php文件中有如下内容:

<?php
// load php-login components
require_once("php-login.php");

// create a login object. when this object is created, it will do all login/logout stuff automatically
// so this single line handles the entire login process.
$login = new Login();

// ... ask if we are logged in here:
if ($login->isUserLoggedIn() == true) {

    include("views/logged_in.php");

} else {

    include("views/not_logged_in.php");
}
对于每个需要的元素? 我认为对于客户端来说基本上是一样的,但是在服务器端我不知道,因为我是初学者,所以我想问一下。 对不起,我的英语不好,但我希望你能理解


注:我不知道我是否能提出“最好的方式是什么”的问题,如果不能,我很抱歉,下次我不会。我首选的方法是验证用户身份(但我希望,通常是通过数据库中的哈希密码),然后使用会话跟踪登录状态。然后我可以设置一个变量,比如
$\u SESSION['loggedIn']=true然后在对我的脚本的后续调用中进行测试

例如

如果用户单击一个链接注销,我可以简单地取消设置标志

unset($_SESSION['loggedIn']);
基本上,根据您的需要,包括安全性,您可以使用几种不同的方法来实现这一点。不过,对我来说,我使用存储在数据库中的哈希密码对用户进行身份验证,然后使用会话变量跟踪用户的登录状态


如果您现在所拥有的感到方便并且满足您的需求,那么您就可以开始了。

我的首选方法是验证用户身份(但我希望,通常是通过数据库中的哈希密码),然后使用会话跟踪登录状态。然后我可以设置一个变量,比如
$\u SESSION['loggedIn']=true然后在对我的脚本的后续调用中进行测试

例如

如果用户单击一个链接注销,我可以简单地取消设置标志

unset($_SESSION['loggedIn']);
基本上,根据您的需要,包括安全性,您可以使用几种不同的方法来实现这一点。不过,对我来说,我使用存储在数据库中的哈希密码对用户进行身份验证,然后使用会话变量跟踪用户的登录状态


如果您现在所拥有的感觉方便且满足您的需求,那么您就可以开始了。

谢谢您的回答。我认为您所说的与使用该函数基本相同,因为在“login”类中,
isUserLoggedIn()
函数使用带有$\u session['loggeu in']标志的php会话。我更喜欢使用这个类,因为它对我来说更简单,而且它本身可以做很多其他事情,比如密码散列、数据库连接和记住我的cookies。我想我会使用include()版本,因为它可以让事情“更干净”和更有条理。谢谢你的回答。我认为您所说的与使用该函数基本相同,因为在“login”类中,
isUserLoggedIn()
函数使用带有$\u session['loggeu in']标志的php会话。我更喜欢使用这个类,因为它对我来说更简单,而且它本身可以做很多其他事情,比如密码散列、数据库连接和记住我的cookies。我想我会使用include()版本,因为它使事情“更干净”和更有条理。
unset($_SESSION['loggedIn']);