最初に私がやろうとしていること: 私はログインできるようにログインページにアクセスしようとしています。サイトはHttpsであり、 jQueryを使用してPHP + Curlを実行して、そのページを取得してCookieを保存しています。さて、私はクッキーを取得することができましたが、私はクッキーが設定されていないポップアップを取得し続けます。だから私は、より多くのそれを見て、javascriptのクッキーを参照するには、最初のチェックが有効になっているんことがわかった:https、Jquery、PHP、Curl、document.cookie
function initLogin(){
// check if cookie is enabled so applications can run
if (document.cookie == "") {
alert("Cookies are disabled. Cannot access mid-tier with this setting.\nPlease configure your browser to accept cookies.");
return;
}
....Other Code...
}
を、私はこのフォーラムにちょうど約すべてのポストを通して見て、異なるコードのがらくたの負荷を試みたがありません運。ですから、この点をどのように過ぎ去らせるのかという疑問があります。私の要約は:Jqueryはプロキシ/サーバー上のPHPスクリプトを呼び出し、curlを呼び出してWebページを取得します。 Curlはその後の使用のためにクッキーを保存しますが、どのように使用しますか。私はクッキーファイルにそれらを設定するだけで十分だろうと思ったが、私は間違っていたと思う。だから私はちょうどCURLOPT_COOKIEにそれらを設定するのに疲れましたが、これが正しいかどうかはわかりません。ここで
は、私が実行しているコードのコピーです:コード上から
function getpage(){
$fullurl = "https://url/arsys/shared/login.jsp?/arsys/home";
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, $fullurl);
$output = curl_exec ($ch);
preg_match_all('|Set-Cookie: (.*);|U', $output, $results);
$newcookies = implode(';', $results[1]);
echo "<br>COOKIES:" . $newcookies;
curl_setopt ($ch, CURLOPT_COOKIE, $newcookies);
echo curl_error($ch) . " " . $output;
curl_close($ch);
}
出力: COOKIES:JSESSIONID = B4830242479D3DFD3235D17EE6A4DEB8; Q = "" HTTP/1.1 200 OKのCache-Control:NO-キャッシュContent-Type:text/html; charset = UTF-8サーバー:Microsoft-IIS/7.5 Set-Cookie:JSESSIONID = B4830242479D3DFD3235D17EE6A4DEB8; Path =/arsys;セキュアなセットクッキー:q = ""; Expires = Thu、1970年1月1日00:00:10 GMT;パス= /日:金、2012年4月20日午後5時57分17秒GMTのコンテンツの長さ:35657
私も試してみました:
function getpage(){
$ckfile = "cookies/cookie.txt";
$fullurl = "https://url/arsys/shared/login.jsp?/arsys/home";
$ch = curl_init();
curl_setopt($ch, CURLOPT_COOKIEJAR, $ckfile);
curl_setopt ($ch, CURLOPT_COOKIEFILE, $ckfile);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, $fullurl);
$output = curl_exec ($ch);
curl_close($ch);
}
クッキーが正しいファイルに保存されているが、それでも同じメッセージをゲット。