好的 - 简单地说,我正在构建一个需要合并现有页面的站点,并使用简单的.htaccess / .htpasswd脚本进行保护。
如何使用PHP将用户名/密码传递给接收站点?
先谢谢你的帮助!!!
更新 - 我想我可能过于复杂了这个问题。我需要做的主要是:
<a href="http://username:password@url.com/" target="_blank">The link<a>
实际上,除了IE之外,其他所有内容都能完美运行。如果我能找到更通用,更简单的解决方案,那我就是金。
提前感谢您的帮助!
答案 0 :(得分:2)
我同意alxp你应该了解cURL。基本要点是,在使用HTTP Basic Auth时,凭证将作为base64编码的字符串发送到标头中。这是一个使用PHP的cURL扩展的简单示例:
$url = '...';
$username = '...';
$password = '...';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"Authorization: Basic " . base64_encode($username . ":" . $password)
));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$result = curl_exec($ch);
print $result;
希望有所帮助!阅读HTTP Basic here和PHP's cURL extension here
请注意,这是示例代码,不包含错误检查等。
答案 1 :(得分:1)
如果您使用file_get_contents
功能下载页面,可以使用以下内容:
$data = file_get_contents('http://username:password@example.com/path/');
答案 2 :(得分:1)
如果你了解卷曲库,你将是最好的,可以找到一个很好的介绍here,包括如何提交一个姓名和密码。
答案 3 :(得分:0)
您可以通过简单的http重定向以纯文本格式传递用户名和密码,格式为
http://username:password@yoursite.com/yourpage
但是,您可能不应该 - 现在有些浏览器在看到这种语法时会明确地打扰您进行确认。
但是,您可以通过使用file_get_contents()加载上述URL并将结果转储到浏览器来将其隐藏起来。如果页面的HTML输出使用其服务器上的外部文件(images / js / css)的相对链接,则无效。