PHP get username from Basic Authorization(PHP从基本授权获取用户名)
本文介绍了PHP从基本授权获取用户名的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在我的.htaccess文件中,我有:
AuthType Basic
AuthName "Restricted Area"
AuthUserFile /path/to/.htpasswd
require valid-user
<Files .htaccess>
deny from all
</Files>
并且.htpasswd文件具有有效的用户/密码。
当我转到一个PHP文件时,我需要获取用于访问该页面的用户名。可以访问PHP,所以我知道User/Pass正在工作,但我似乎无法提取用户名。
我同时尝试了$_SERVER['REMOTE_USER']
和$_SERVER['PHP_AUTH_USER']
,但都是空的。我如何才能使其正常工作?
php
推荐答案可以用不同的方式存储用户名,因此可以尝试一下下面这样的方法。
<?php
$username_extracted = retrieve_php_username();
function retrieve_php_username() {
$username = '';
// Try to get the login name from the $_SERVER variable.
if (isset($_SERVER['HTTP_AUTHORIZATION']) || isset($_SERVER['REDIRECT_HTTP_AUTHORIZATION'])) {
$authorization_header = '';
if (isset($_SERVER['HTTP_AUTHORIZATION']) && !empty($_SERVER['HTTP_AUTHORIZATION'])) {
$authorization_header = $_SERVER['HTTP_AUTHORIZATION'];
}
// If using CGI on Apache with mod_rewrite, the forwarded HTTP header appears in the redirected HTTP headers.
elseif (isset($_SERVER['REDIRECT_HTTP_AUTHORIZATION']) && !empty($_SERVER['REDIRECT_HTTP_AUTHORIZATION'])) {
$authorization_header = $_SERVER['REDIRECT_HTTP_AUTHORIZATION'];
}
// Resemble PHP_AUTH_USER and PHP_AUTH_PW for a Basic authentication from
// the HTTP_AUTHORIZATION header. See http://www.php.net/manual/features.http-auth.php
if (!empty($authorization_header)) {
list($username_temp, $userpass_temp) = explode(':', base64_decode(substr($authorization_header, 6)));
$username = $username_temp;
}
}
// Check other possible values in different keys of the $_SERVER superglobal
elseif (isset($_SERVER['REDIRECT_REMOTE_USER'])) {
$username = $_SERVER['REDIRECT_REMOTE_USER'];
}
elseif (isset($_SERVER['REMOTE_USER'])) {
$username = $_SERVER['REMOTE_USER'];
}
elseif (isset($_SERVER['REDIRECT_PHP_AUTH_USER'])) {
$username = $_SERVER['REDIRECT_PHP_AUTH_USER'];
}
elseif (isset($_SERVER['PHP_AUTH_USER'])) {
$username = $_SERVER['PHP_AUTH_USER'];
}
return $username;
}
这篇关于PHP从基本授权获取用户名的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:PHP从基本授权获取用户名
基础教程推荐
猜你喜欢
- WooCommerce 中选定产品类别的自定义产品价格后缀 2021-01-01
- Libpuzzle 索引数百万张图片? 2022-01-01
- XAMPP 服务器不加载 CSS 文件 2022-01-01
- 如何在 PHP 中的请求之间持久化对象 2022-01-01
- 在 PHP 中强制下载文件 - 在 Joomla 框架内 2022-01-01
- 超薄框架REST服务两次获得输出 2022-01-01
- 通过 PHP SoapClient 请求发送原始 XML 2021-01-01
- mysqli_insert_id 是否有可能在高流量应用程序中返回 2021-01-01
- 在多维数组中查找最大值 2021-01-01
- 在 Woocommerce 中根据运输方式和付款方式添加费用 2021-01-01