2012-04-20 10 views
2

最初に私がやろうとしていること: 私はログインできるようにログインページにアクセスしようとしています。サイトは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); 
} 

クッキーが正しいファイルに保存されているが、それでも同じメッセージをゲット。

答えて

0

..私はGoogleでコードを試してみました、それは私を停止され、そのJavaScriptを正常に動作しますが、でカールからそれを取得した後(区切りファイルに格納した後に)ブラウザのクッキーでCookieを保存する必要がありますにPHP setcookieを使用してJavaScript経由で使用することができます。 PHPを使ってクッキーを設定した後、それはjQuery.cookies.js

$.cookies.get() 

$.cookies.filter() 

$.cookies.set() 

$.cookies.del() 

$.cookies.test() 

$.cookies.setOptions() 
を使用することをお勧めします:JavaScriptの側