我知道php中的这个功能会创建并返回一个流上下文,其中包含选项预设中提供的任何选项。我也知道我可以用它来做我想要的通过我的用户名和密码凭证...但我仍然不太明白如何使用这个功能以及它在描述中的复杂词语到底是什么我真的很困惑....我有示例中的代码,但我不知道如何使用此功能将凭据传递给www.confluence.com(只有我可以访问它,因为它在Apache服务器上)。有人可以解释或举例说明我如何使用它来传递凭证吗?
编辑:这是总结,非常短,所以不知道如果你把它称为摘要....我被分配了一个应用程序来制作.....有大约10种不同的方法来做到这一点。由于他们给我的限制,我只能用我发现的一种方式工作......我非常沮丧,因为有一个更简单的方法来使用谷歌日历这样做,但他们拒绝由于安全原因所以我被困汇总日历.....除了这一点,为了使这更难,汇合由外部公司托管,所以我甚至不能使用get_contents直接访问汇合日历,因为它要求登录凭据....我不是一个专业人士和一个接一个的障碍不断突然出现,让我的生活更加艰难,这只是bs ...我花了几个小时在过去3个星期找到解决方案只是让它被拒绝...我终于得到了这个get_contents worky工作但现在登录凭据是一个痛苦的屁股,我从来没有处理过这个,所以我尽我所能,但我绝对没有想法什么stream_context_create做什么或如何甚至使用它来传递我的凭据...汇合网站我试图访问我可以使用m手动登录y登录,但代码不能....汇合是在apache服务器上,所以其他人无法访问它....我不能分享我的登录信息,因为这是公司的安全问题...我很抱歉,如果我没有意义但我非常沮丧,找不到任何解决办法,我的思绪已经从编码和阅读中消失了一半 相信我,我已经做了很多搜索和谷歌搜索....但我终于达到了空白卡住的地步......<?php
$opts = array(
'http'=>array(
'method'=>"GET",
'header'=>"Accept-language: en\r\n" .
"Cookie: foo=bar\r\n"
)
);
$context = stream_context_create($opts);
/* Sends an http request to www.example.com
with additional headers shown above */
$fp = fopen('http://www.example.com', 'r', false, $context);
fpassthru($fp);
fclose($fp);
?>
我在这里发现了一些类似于我正在做的其他代码,但不太确定如何处理它或如何修改它..
$data = array('account'=>'javier',
'password'=>'12345',
'submit'=>'SUBMIT');
$content = file_get_contents('http://localhost/misc/login.php', false, stream_context_create( array('http' => array('method' => 'POST', 'content' => http_build_query($data) ) ) ) );
$sFind = 'Logged in';
$search = strpos($content, $sFind);
echo $content;
if($search === false){
echo 'Invalid Account';
}
else {
echo 'Valid Account';
}
我的另一个想法是使用JavaScript来登录...我不知道哪个更好但是我不允许下载任何库等等所以建议很好。
答案 0 :(得分:1)
您正在使用'GET'方法,登录信息的传递方式并不常见。 您确定要求的页面不使用POST吗?
同样在检索网页时,尤其是在发送POST或GET变量时,我更喜欢使用cURL。