2015-12-08 28 views
2

问题 我有一个使用基本身份验证并具有多个不同登录名的网站。我想用JavaScript的方式告诉用户当前登录人员的用户名。如何区分使用基本身份验证的用户

我检查了cookie并且基本身份验证凭证没有存储在那里。

堆栈 我使用Apache与.htaccess.htpasswd文件,以便使用后端知道哪些用户登录前端配置不是一个选项。

目标 我试图解决的问题是非常简单的,我希望我的网站,以显示人的当前登录。

回答

1

不是没有PHP的一点点的用户名。 Javascript在客户端执行,正如你已经发现的那样,用户名不是从服务器发送的,所以你需要在服务器端发送一些东西来发送这个用户标识符。

方法如下:

当你的页面在服务器上生成,它采用一小块的PHP的用户名添加到您的JavaScript,这就是JavaScript的它是如何在客户端用它做什么需要。

请注意,在用户再次请求页面之前,用户ID不会改变,所以它不是在客户端中间阶段需要动态的。

PHP在用户登录时在服务器端生成页面,并将其包含在页面上的JavaScript代码中。如果你想在JavaScript中使用这个名字,你可以使用<?php echo $_SERVER['REMOTE_USER']; ?>。文件扩展名将需要.php文件在你的HTML和JavaScript代码的服务器上。

+1

谢谢!我添加了一个文件user.php并放入'<?php echo $ _SERVER ['REMOTE_USER']; “然后我向该文件发出了一个请求,它就起作用了! – swsmith

+0

这很好。仅供参考,只需将上面的REMOTE_USER更改为http://php.net/manual/en/reserved.variables.server.php列表中的其他任何其他服务器,就可以从服务器获得很多服务。有时非常方便( - : – Trevor