我是网络编程的新手,我试图找到一些关于如何创建一个网站的好例子/教程,这个网站要求用户登录以查看主登录页面之外的任何页面.
到目前为止,我已经找到了1或2我尝试过,但我一直遇到同样的问题.如果我只是输入页面的网址,我想手动看到我可以进入,就像那里什么也没有.
好的,我将解释基本概念是如何进行的,以及一个非常简单的实现来实现目标.
PHP(和大多数Web应用程序)依赖于RESTful服务 - 目前我们关注的是,每个请求都不会远程绑定到任何其他请求 - 无论是由同一个用户还是其他用户.
那是什么意思呢?
这意味着对于每个请求,您都需要进行检查.您需要确保用户是否有权执行该页面,或者甚至不太严格地查看其内容.
这是如何实现的?
实际上,从很多方面来说.有许多技术用于对Web应用程序实施授权,但它们基本上都可以分解为两种中的一种 - 集中式或分散式.
- 集中
这意味着您的所有操作(和控制器)都通过单个文件进行处理.比如index.php.然后,该文件将根据请求参数将其任务包含或委托给其他文件(这些文件不能通过正常请求自行运行).这是一种非常流行的方法,但对于新开发人员而言并非完全直截了当.使用此方法的应用程序示例将具有以下类型的URL:index.php?do = register,index.php?do = login,index.php?do = showtopic&topic_id = 2,依此类推.
这种技术的简单实现如下:
等等.
我已经记录了通常的auth代码应该去的地方.
- 分散
但是,使用这种方法,您的身份验证代码应该位于每个文件的开头.这类应用程序的URL通常类似于:register.php,login.php等.这里的主要问题是你需要为每个文件执行所有auth逻辑,如上所述,如果你的文件数量增加,这可能是一个繁忙的工作.一个方便的解决方案是将该逻辑放在一个文件中,并在任何逻辑之前包含该文件(这会杀死对unauth personel的请求).一个简单的例子是: