从PHP设置HTTP用户名/密码


Set HTTP username/password from PHP

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

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

$_SERVER['PHP_AUTH_USER']$_SERVER['PHP_AUTH_PW']提供了一种读取而不是设置这些值的方式。

您可以通过在URL中放置用户名和密码来访问HTTP身份验证链接:

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

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

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

这是个坏主意!身份验证是为了确保你是你所说的自己。相反,您使用它作为一种方法来控制对给定资源的访问。

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