PHP Basic Authentication如何获得用户名?

时间:2018-06-25 08:56:08

标签: php .htaccess

我已经在here中对我网站的一个部分进行了基本身份验证,它可以正常工作,但是现在我需要能够访问用户名才能过滤某些结果。但是$_SERVER['PHP_AUTH_USER']无法正常工作。还有其他方法可以查看谁登录了吗?

我的.htaccess文件:

AuthType Basic

AuthName "You need to login to access this page."
AuthUserFile /usr/local/..../.htpasswd
Require valid-user

RewriteEngine on
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]

它被标记为重复,但是我看不到问题的答案在哪里?有人可以帮忙吗?管理员?

3 个答案:

答案 0 :(得分:0)

用户登录时,使用会话变量存储用户名,然后访问它。.

session_start();
$_SESSION['username'] = $username 

//$username is whatever you grabbed as the supplied login details

答案 1 :(得分:0)

例如,您具有以下登录功能;

<?php
function doLogin($uname, $pword)
{
    global $connection;
    $query = "SELECT psswd FROM users WHERE (uname = '{$uname}' OR email = '{$uname}')";
    $result = $connection->query($query);
    $row = $connection->fetch_assoc($result);
    $password = $row['psswd'];

    if (password_verify($pword, $password))
    {
        session_start();
        $_SESSION['user_logged_in'] = true;
        $_SESSION['username'] = $uname;
        return true;
    }
    return false;
}

使用验证,我们可以看到从数据库中找到了密码,并使用php的功能对此进行了验证,并且我们还在会话中设置了变量(在启动它并进行了有效的登录之后),也是如此。作为存储用户名以备将来使用

答案 2 :(得分:0)

在您的.htaccess中,您正在填充$_SERVER['HTTP_AUTHORIZATION']-您尝试过吗?