首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PHP基本认证如何获取用户名?

PHP基本认证如何获取用户名?
EN

Stack Overflow用户
提问于 2018-06-25 16:56:08
回答 3查看 562关注 0票数 1

我已经在我的网站的一个部分设置了一个基本的身份验证作为文档here,它工作得很好,但现在我需要能够访问用户名,以便过滤某些结果。但是$_SERVER['PHP_AUTH_USER']不能工作。有没有其他方法可以查看谁已经登录?

我的.htaccess文件:

代码语言:javascript
复制
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]

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

EN

回答 3

Stack Overflow用户

发布于 2018-06-25 17:00:56

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

代码语言:javascript
复制
session_start();
$_SESSION['username'] = $username 

//$username is whatever you grabbed as the supplied login details
票数 0
EN

Stack Overflow用户

发布于 2018-06-25 17:05:49

例如,您具有以下登录函数;

代码语言:javascript
复制
<?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的函数进行验证的,我们在会话上设置了变量(在启动它之后&一个有效的登录)来表明这一点,并存储用户名以供将来使用

票数 0
EN

Stack Overflow用户

发布于 2018-06-25 19:06:56

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51019627

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档