我有一个无法使用直接链接下载文件的设置,除非使用 HTTP 身份验证提供用户名/密码。
我想创建一个链接到下载的页面,访问该页面时会设置 HTTP 用户名和密码,因此用户永远不会看到 HTTP 身份验证框。(但是,如果他们尝试直接下载文件,则不能。)
$_SERVER['PHP_AUTH_USER']
并$_SERVER['PHP_AUTH_PW']
提供一种读取但不设置这些值的方法。
我有一个无法使用直接链接下载文件的设置,除非使用 HTTP 身份验证提供用户名/密码。
我想创建一个链接到下载的页面,访问该页面时会设置 HTTP 用户名和密码,因此用户永远不会看到 HTTP 身份验证框。(但是,如果他们尝试直接下载文件,则不能。)
$_SERVER['PHP_AUTH_USER']
并$_SERVER['PHP_AUTH_PW']
提供一种读取但不设置这些值的方法。
您可以通过在 URL 中放置用户名和密码来访问 HTTP-auth 链接:
http://username:password@archive.example.com/path/to/file.zip
请注意,可能并非所有浏览器都支持此表示法,或者对它的支持可能是用户可在浏览器中配置的。您需要在对您很重要的平台上对此进行测试。
请注意,您的问题很可能有更好的解决方案。
这是一个坏主意!身份验证是为了确保您是您所说的那个人。相反,您使用它作为一种方法来控制对给定资源的访问。
如果您想强制某人通过网关页面,请生成随机查询字符串,并在匹配时header()
用于设置 HTTP 元数据和fpassthru()
/或sendfile()
发送内容。