2011-06-18 19 views
1

curlを使用して正常にログインしました。curl - 次のページへ移動するには?

$ch = curl_init('http://site.com/login'); 
// setting posts, cookies file, headers 
curl_exec($ch); 

その後、ログインしているときに、私は他のページに移動する必要があり、いくつかのものを行うにはhttp://site.com/profitを言うことができます。

どのようにですか?
他のPHPスクリプトを$ch = curl_init('http://site.com/profit')と一緒に実行するか、1つのファイルで実行できますか?それはどのようにすべきか?あなたがウェブサイトであなたの「セッション状態」を維持するためにあなたの前の要求(これが成功したかどうか)

の出力に基づいて、このための別のCURLの要求を開始する必要が

答えて

2

あなたは同じPHPスクリプトで好きなあなたは何回でもカール使用することができます。要求間にはcurl_close($ch)と必ず連絡してください。クッキーjarファイル(CURLOPT_COOKIEJARを使用して指定)が書き込まれていることを確認してください。

+0

@マーク - cURL接続のリクエストを閉じる必要はありません。 cURLはあなたのためにリファラーを自動的に設定するので、実際には有益ではありません。 'curl_close()'をスクリプトの最後に保存することができます。 –

+0

@Francois - あなたは正しいかもしれません。しかし、CURLOPT_COOKIEJARのドキュメントでは、「curl_closeの呼び出しの後など、ハンドルが閉じられたときにすべての内部クッキーを保存するファイルの名前」と記載されています。だから私は、最初のものが閉じられていない限り、次のリクエストにクッキーが利用できないという結論に達しました。 curl_setopt(CURLOPT_URL)とcurl_execをcurl_initとcurl_closeの呼び出しの間に複数回使用すると、リクエスト間で共有されるクッキーがあると言いますか?私はそれを試す必要があります.... –

+0

@マーク - 絶対に!それでもCURLOPT_COOKIEJARとCURLOPT_COOKIEFILEを定義する必要がありますが、セッションを閉じる必要はありません。私はcURLを使って何年も何かを掻き立てて自動化してきました!ドキュメントによれば、クッキーをファイルに保存したい場合(1時間または明日に再度使用できるように)、その設定をその目的のために使用することができます。 –

関連する問題