1

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

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

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

4

2 回答 2

2

您可以通过在 URL 中放置用户名和密码来访问 HTTP-auth 链接:

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

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

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

于 2012-07-26T17:30:56.200 回答
1

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

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

于 2012-07-26T18:44:06.297 回答