0

まず第一に、私はさまざまな方法を試し、これに関するかなり多くの記事を読んだことを明確にしたいと思いますが、完全に機能するものはありませんでした.

cURL で Cookie を正常に取得できるようになりましたが、実際にそれらを使用しようとすると、単に失敗し、リダイレクトされていると表示されます。

私が取得したいポイントは、ログインしてプロファイルからデータを取得し、それを処理したいということです...

これが私が今いる場所です(正しいCookieを保存するだけですが、ログイン後のMYページには戻りません):

$url="https://myschool.managebac.com/sessions/";

$postdata = "login=myname@myschool.com&password=password&commit=Sign-in&remember_me=1";

$cr = curl_init();
curl_setopt($cr, CURLOPT_URL, $url);
curl_setopt($cr, CURLOPT_POST, TRUE);
curl_setopt($cr, CURLOPT_HEADER, TRUE);
curl_setopt($cr, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($cr, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($cr, CURLOPT_POSTFIELDS, $postdata);  
curl_setopt($cr, CURLOPT_COOKIEJAR, 'cookie.txt');   
$header = curl_exec($cr); 
curl_close($cr); 

$cr2 = curl_init();
curl_setopt($cr2, CURLOPT_URL, 'https://myschool.managebac.com/');
curl_setopt($cr2, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($cr2, CURLOPT_HEADER, TRUE);
curl_setopt($cr2, CURLOPT_RETURNTRANSFER, TRUE); 
curl_setopt($cr2, CURLOPT_COOKIEFILE, 'cookie.txt'); 
$result = curl_exec($cr2);
curl_close($cr2);

Managebac は (主に IB の学生向けの) 使用されるアプリケーションではないため、実際に可能な方法があることを願っていますが、これが機能するようになれば、大いに役立つでしょう。

毎回の回答嬉しいです。

4

1 に答える 1

0

わかりました、それで私はなんとかそれをすることができました。

現在、必要な情報を取得し、すべてを正常に実行します。

誰かがコードを欲しがるなら、ここにあります:

$url="https://myschool.managebac.com/sessions";
$postdata = "login=mylogin&password=mypassword&commit=Sign-in&remember_me=1";

$cr_curlopt = array(CURLOPT_URL => $url,
                    CURLOPT_POST => TRUE,
                    CURLOPT_HEADER => TRUE,
                    CURLOPT_USERAGENT => $_SERVER['HTTP_USER_AGENT'],
                    CURLOPT_RETURNTRANSFER => TRUE,
                    CURLOPT_POSTFIELDS => $postdata,
                    CURLOPT_COOKIEJAR => 'cookie.txt');

$cr = curl_init();
curl_setopt_array($cr, $cr_curlopt);
$header = curl_exec($cr);

curl_close($cr); 

$cr2_curlopt = array(CURLOPT_URL => "http://myschool.managebac.com",
                    CURLOPT_USERAGENT => $_SERVER['HTTP_USER_AGENT'],
                    CURLOPT_RETURNTRANSFER => TRUE,
                    CURLOPT_COOKIEFILE => 'cookie.txt');

$cr2 = curl_init();
curl_setopt_array($cr2, $cr2_curlopt);
$result = curl_exec($cr2);
curl_close($cr2);

print $result;

ところで、なぜそれが実際に役立つのかわかりませんが、curloptの追加を個別の文字列から1つの配列に変更した後、機能し始めました。(DanReduxに感謝)

于 2012-04-30T17:20:38.140 に答える