从PHP设置HTTP用户名/密码

时间:2012-07-26 17:21:57

标签: php apache http permissions

我有一个设置,使用直接链接无法下载文件,除非使用HTTP身份验证提供用户名/密码。

我想创建一个链接到下载的页面,当访问时,它会设置HTTP用户名和密码,因此用户永远不会看到HTTP身份验证框。 (但是,如果他们试图直接下载文件,他们就不能。)

$_SERVER['PHP_AUTH_USER']$_SERVER['PHP_AUTH_PW']提供了一种阅读但不设置这些值的方法。

2 个答案:

答案 0 :(得分:2)

您可以通过在网址中输入用户名和密码来访问HTTP-auth链接:

http://username:password@archive.example.com/path/to/file.zip

请注意,并非所有浏览器都支持此表示法,或者在浏览器中可以对用户进行配置支持。您需要在对您很重要的平台上进行测试。

请注意,您的问题很可能会有更好的解决方案。

答案 1 :(得分:1)

这是一个坏主意!身份验证适用于确保您就是您所说的。相反,您将其用作控制对给定资源的访问的方法。

如果您想强制某人浏览网关页面,请生成随机查询字符串,在匹配时,使用header()设置HTTP元数据,并fpassthru()sendfile()发送内容。