PHP 制作简单 HTTP 密码认证


如果网站内有些网页只希望提供给管理员,那么便需设置一个密码认证功能。在 PHP 中制作密码认证的方法有好几种,以下介绍较为简单的 HTTP authentication。

需要 PHP 在 Apache module 下执行才有这功能,而在 IIS 及 PHP 使用 CGI Mode 安装则没有这个功能。

HTTP authentication
PHP 内实现 HTTP authentication 的原理是使用 header() 传送一个 “Authentication Required” 的讯息到访问者的 browser,然后便会弹出一个 pop up windows 要求使用者输入使用者名称及密码。
当使用者输入登入资料后,所输入的使用者名称及密码会储存到 $_SERVER[‘PHP_AUTH_USER’] 及 $_SERVER[‘PHP_AUTH_PW’] 两个变量内。

程式码范例
以下的程式码会简单实现密认证功能,只需将这段程式码放到需保护的程式开端即可:

以上例子设定成使用者名称为 “administrator”,而密码为 “123456”。

注意事项:这种认证方法对加了这段程式码的档案生效,并不会对整个目录起作用。如需对目录下所有档案作保护,可使用 .htaccess 这类方法。

Tags:

Leave a Reply