2011-06-07 72 views
-2

我知道这个功能在PHP创建并返回一个流上下文与选项预置中提供的任何选项。我也知道我可以用它来做我想做的事,即通过我的用户名和密码凭证......但我仍然不太清楚如何使用此功能,以及说明中复杂的单词的确切含义是什么真让我困惑......我有这个例子中的代码,但我不知道如何使用这个特性将凭据传递到www.confluence.com(只有我可以从apache服务器上访问它)。有人可以请解释或举例说明我如何使用它来传递证书?php stream_context_create混淆

编辑:这里是总结,很短,所以不知道如果你把它称为一个总结....我被分配了一个应用程序...... .....有大约10种不同的方式来做到这一点。由于他们给我的限制,我只能用我发现的一种方式工作...我非常沮丧,因为使用谷歌日历有很简单的方法来做到这一点,但他们拒绝,由于安全原因,所以我卡住了合流日历.....除此之外,为了使这更难,汇合由外部公司托管,所以我甚至不能使用get_contents直接访问汇合日历,因为它要求登录凭证....我不是一个职业在这个和一个又一个障碍不断弹出,使我的生活更加艰难,这只是BBS ...我花了几个小时在过去三个星期找到解决方案只是拒绝...我终于得到了这个get_contents thingy工作,但现在登录凭证是一个痛苦的屁股,我从来没有处理这个,所以我尽我所能,但我绝对没有想法什么stream_context_create做甚至如何使用它来传递我的凭据......合流网站我正在尝试访问我可以使用m手动登录y登录,但代码不能....合流是在Apache服务器上,所以其他人无法访问它....我无法分享我的登录信息,因为这是公司的安全问题......我很抱歉,如果我没有任何意义但我非常沮丧,无法找到解决方案,我的思想已经从编码和阅读中消失了一半 相信我,我已经做了大量的搜索和Google搜索......但IVE终于达到了我空白的地步卡住了...

<?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'; 
} 

ANOT她的想法是使用JavaScript进行登录...我不知道哪个更好,但我不允许下载任何库或其他建议。

+0

我不完全确定你在问什么。哪一部分让你感到困惑?你尝试过什么,给你什么错误?你可以发布一些你的代码吗? – pinkgothic 2011-06-07 15:33:54

回答

1

您正在使用'GET'方法,登录信息像这样传递的情况并不常见。 您确定您要求的页面不使用POST吗?

亲自检索网页时,尤其是发送POST或GET变量时,我更喜欢使用cURL

+0

正如我所说,这是一个例子,它不是我的代码我需要帮助如何使用此功能发送登录凭据 – Bulvak 2011-06-07 15:06:08

+0

@ user761669而且我建议问题可能出在哪里,以及发送您的登录凭据的替代解决方案可能更简单。也许你可以用更多的信息编辑你的问题:它会产生错误吗?是否有一部分代码不完全理解?您可以更具体地解答您的问题,人们可以给您提供更好的答案。 – klennepette 2011-06-07 17:42:13