2011-07-22 12 views
1

CURLを使用して別のページにログインし、クッキーを取得してから別のページを呼び出すために使用するPHPページがあります。新しいページでは、同じページを呼び出すためにphpを再度呼び出すことができますが、パラメータは異なります。このコードはすべて無料のWebホスティングサイトで動作します。しかし、クライアントに移動したときに、最初の呼び出し(クッキーが作成され、正常に使用された)で動作しますが、新しいパラメータでページを再度呼び出すとCookieが再利用されません。コードはWordPressにあり、すべての詳細はほぼ同じです(テーマ、プラグイン、DBをあるサイトから別のサイトにコピーした方法で)。違いの理由は何でしょうか、この違いをどうやって変えようと思いますか? 私は現時点で見ることができる唯一の違いは、Webページからの応答を見ていることです。動作していないサイトでは、キャッシングなしとage = 0に設定されています。これが理由であろうと、どうすればこれを変えることができますか?PHP CURLクッキーが再度呼び出されたときにクッキーが保持されない

+0

cookiejar/fileがデフォルトで使用されているかどうかを確認してください。 http://curl.haxx.se/mail/archive-2002-05/0001.htmlとhttp://icfun.blogspot.com/2009/04/php-how-to-use-cookie-jar-withを参照してください。 -curl.html – hakre

答えて

0

は手動カールオペレーションにをCookieJar /ファイルを割り当てるようにしてください:

$cookie_file = "/tmp/cookie/cookie1.txt"; 
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file); 
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file); 

カールは、その要求を開始する前のCookieJarからクッキーを読みますと、それは応答から取得cookiefileに受け取ったクッキーを書き込みます。

パスは、PHPが実行されるユーザによってアクセス可能で、読み書き可能でなければなりません。相対パスではなく完全パスを使用する必要があります。

編集:Marc B writesPHP, Curl, curl_exec(), curl_close() and cookiesクッキーがカールハンドルにバインドされている。だからあなたがハンドルのカールを閉じない限り、クッキーを気にする必要があります。

したがって、両方のリクエストが同じカールハンドルを共有する場合、cookiejar /ファイルは必要ありません。

+0

ありがとうございました。問題は、パスがアクセス可能で、読み書き可能でなければならないということでした。私はcookiejarファイルを絶対パスに変更して、そのフォルダをアクセス可能にして、それを動作させました。私は元々、動作しなかったサーバ上のpublic_htmlフォルダと、動作したサイトのサブフォルダに書き込もうとしていました。 – Seanog

関連する問題