我们使用的PHP以增加安全性的CGI版本,所以你不能正常使用“PHP_AUTH_USER”和“PHP_AUTH_PW”变量。然而,有一种方法可以“绝招”Apache和PHP到这样做。只要按照下面的说明。
第1步:创建一个.htaccess文件
首先,创建的.htaccess在同一目录下你的PHP脚本文件。该文件应包含以下两行:
RewriteEngine on
RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization},last]
这告诉Apache Web服务器通过加密的用户名和密码的变量命名到PHP HTTP_AUTHORIZATION。
第2步:使用PHP_AUTH_USER和PHP_AUTH_PW之前添加额外的PHP代码
在PHP脚本,包括使用前这段代码PHP_AUTH_USER和PHP_AUTH_PW变量:
if (preg_match(\'/Basic\\s+(.*)$/i\', $_SERVER[\'HTTP_AUTHORIZATION\'], $matches))
{
list($name, $password) = explode(\':\', 64_decode($matches[1]));
$_SERVER[\'PHP_AUTH_USER\'] = strip_tags($name);
$_SERVER[\'PHP_AUTH_PW\'] = strip_tags($password);
}
这使得PHP使用HTTP_AUTHORIZATION变量提取PHP_AUTH_USER和PHP_AUTH_PW变量。
采用此方法可能看起来像一个简单的PHP脚本的一个完整的例子:
<?php
if (preg_match(\'/Basic\\s+(.*)$/i\', $_SERVER[\'HTTP_AUTHORIZATION\'], $matches))
{
list($name, $password) = explode(\':\', 64_decode($matches[1]));
$_SERVER[\'PHP_AUTH_USER\'] = strip_tags($name);
$_SERVER[\'PHP_AUTH_PW\'] = strip_tags($password);
}
echo \"<p>Username is \", $_SERVER[\'PHP_AUTH_USER\'], \"</p>\";
echo \"<p>Password is \", $_SERVER[\'PHP_AUTH_PW\'], \"</p>\";
?> 继续阅读与本文标签相同的文章
-
微软Windows 10 11月更新准备就绪!
2026-05-14栏目: 教程
-
花3000块发明最牛输入法!打字速度冠绝群雄,现在却被遗忘了
2026-05-14栏目: 教程
-
二进制、八进制、十六进制在现实当中有什么意义?
2026-05-14栏目: 教程
-
无需屏幕、裸眼3D,今后广告等可直接成像在空气中
2026-05-14栏目: 教程
-
教你快速从图片中提取数据——科研利器
2026-05-14栏目: 教程
