2014-03-01 187 views
0

是否有可能通过htpasswd过程获得通过身份验证的人的用户名并将其放入会话变量中?获取登录用户名

User: mave Pass: mave123

成功登录:写 'MAVE' 会话?

+0

你为什么不检查HTTP认证文档? http://www.php.net/manual/en/features.http-auth.php –

+0

我甚至不知道在哪里看? – Mave

回答

2

的.htaccess无法创建或填充PHP会议,但你可以得到:在PHP代码

$_SERVER['PHP_AUTH_USER'] 

值和会话存储。

2

你可以尝试$_SERVER['PHP_AUTH_USER'],但我不知道这是否适用于htaccess,因为它不是由PHP触发的。

1

其他用户已经回答了,您可以使用$_SERVER['PHP_AUTH_USER']来引用用户。但是,如果PHP在CGI模式下运行,它可能会失败。在CGI模式下设置User/Pass服务器变量;添加在你以下授权目录:

<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); 
}