2010-12-30 13 views
0

カールを使用してサイトにログインし、結果のページを取得します。たとえば、私はスクリプトを実行し、私のyahooメールページを見たいと思う。私はこう書いた。 login.phpしかしxyz.comの内容にカールを使用してサイトにログイン

//set POST variables 
$url = 'http://localhost/test/login'; 
$fields = array(
         'username'=>'abc', 
         'password'=>'def' 
       ); 
$fields_string=''; 
//url-ify the data for the POST 
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; } 
rtrim($fields_string,'&'); 

//open connection 
$ch = curl_init(); 

//set the url, number of POST vars, POST data 
curl_setopt($ch,CURLOPT_URL,$url); 
curl_setopt($ch,CURLOPT_POST,count($fields)); 
curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string); 

//execute post 
$result = curl_exec($ch); 

//close connection 
curl_close($ch); 
echo $result; 

login.php

echo $_POST['username']; 
echo $_POST['password']; 

header('Location: http://www.xyz.com/'); 

スクリプトポストデータは示されていません。

+1

これは再帰と何が関係していますか? – BoltClock

答えて

1

。 CURLを使用してログインすると、このクッキーはクライアントブラウザに保存されませんでした。サーバーにログインしているかもしれませんが、クライアントにログインする方法はありません。

そしてもちろん、この行を変更:次へ

echo $_POST['username']; 
echo $_POST['password']; 

header('Location: http://www.xyz.com/'); 

header('Location: http://www.xyz.com/'); 
echo $_POST['username']; 
echo $_POST['password']; 

をかのob_start()を使用。あなたのスクリプトの始めに。

...コンテンツが表示されないため意味がありません)

1

headerへの呼び出しの前に、2つのechoコールが問題です。

他の出力が送信される前にドキュメントheaderを呼び出す必要があります。あなたはnormalyセッションに格納されたセッションIDを生成するWebサイトにログインすることで

http://php.net/manual/en/function.header.php

関連する問題