是否可以通过htpasswd进程获取已成功通过身份验证的用户名并将其放入会话变量中?
User: mave
Pass: mave123
成功登录:将'mave'写入会话?
答案 0 :(得分:2)
.htaccess无法创建或填充PHP会话,但您可以获得:
$_SERVER['PHP_AUTH_USER']
PHP代码中的值和会话中的存储。
答案 1 :(得分:2)
您可以尝试$_SERVER['PHP_AUTH_USER']
,但我不知道这是否适用于htaccess,因为它不是由PHP触发的。
答案 2 :(得分:1)
正如其他用户已经回答的那样,您可以使用$_SERVER['PHP_AUTH_USER']
来引用该用户。但是,如果PHP在CGI模式下运行,它可能会失败。在CGI模式下设置用户/通过服务器变量;在您的授权目录中添加以下内容:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization},L]
</IfModule>
现在,从PHP开始,您可以使用:
if( preg_match('/Basics+(.*)$/i', $_SERVER['REMOTE_USER'], $matches) ) {
list($name, $password) = explode(':', base64_decode($matches[1]));
$_SERVER['PHP_AUTH_USER'] = strip_tags($name);
$_SERVER['PHP_AUTH_PW'] = strip_tags($password);
}