2011-06-07 5 views
-2

私は、phpのこの機能がオプションのプリセットで指定されたオプションでストリームコンテキストを作成して返すことを知っています。私はそれが私のユーザー名とパスワードの資格情報を渡すことです私が望むことを行うために使用することができます知っている...しかし、私はまだかなりこの機能を使用する方法を取得していないし、本当に混乱しています....私は例のコードを持っていますが、この機能を使用してwww.confluence.comに資格情報を渡す方法はわかりません(Apacheサーバー以降はアクセスできます)。誰かが説明をしたり、資格を渡すためにこれをどのように使うことができるかの例を挙げることができますか?php stream_context_create confusion

EDIT:これはサマリーです。かなり短いので、要約と呼んでください。私は、作成するアプリが割り当てられています。これを行う方法は約10種類あります。彼らが私に与えた制限のために、私は私が見つけた1つの方法でしか動かすことができません...私は非常に挫折しているので、Googleのカレンダーを使用してこれを行う簡単な方法がありますが、合流カレンダーへ.....これに加えて、これをもっと困難にするために、コンフルエンスは外部企業によってホストされているので、ログイン資格情報を要求するため、get_contentsを使用してコンフルエンスカレンダーに直接アクセスすることさえできません。私はこの3週間の間、何時間も何時間も費やして解決策を見つけることができませんでした。私はついにこのget_contentsを手に入れました今はログインの資格証明はバットの痛みで、これを扱ったことがないので、ベストを尽くしていますが、アイデアは絶対にありません。私は私がmを使って手動でログインできるアクセスしようとしています私のログイン情報を共有することはできません。それは会社のセキュリティ上の問題なので、私は自分のログイン情報を共有することはできません...私は意味がないと申し訳ありません私は非常に不満で解決策を見つけることができないと私の心は、コーディングと読書から半分死んでいる 私は多くの検索とグーグルを行っている....しかし、私は最終的に私が空白貼られているポイントに達した...

<?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

答えて

1

あなたは 'GET'メソッドを使用していますが、ログイン情報がこのように渡されることは珍しいことです。 リクエストしているページがPOSTを使用していないことを確かめていますか?

ウェブページを取得するとき、特にPOSTまたはGET変数を送信するときは、cURLを使用することをお勧めします。

+0

私はそれが私のコードではない例であると言っています。この機能を使ってログイン資格情報を送る方法についての助けが必要です – Bulvak

+0

@ user761669そして私は問題がどこにあるのかを示唆していました。もっとシンプルに。たぶんあなたはいくつかの情報であなたの質問を編集することができます:それはエラーを生成するのですか?あなたが完全に理解していないコードの部分はありますか?より具体的に質問をすることができれば、人々があなたに与えることができるより良い答えが得られます。 – klennepette