1

これはこのフォーラムでの最初の質問ですが、以前に回答を見つけるのに役立ちました. そのため、PHP と CURL を使用して自分のアカウントに自動的にログインしようとしています。

私はPHPを初めて使用しますが、これまでWebページに接続する必要があるときはいつでも、投稿を行うか、リダイレクトを取得またはフォローする必要がありましたが、すべてうまくいきました。

問題は、ログインしようとしているアカウントにユーザー/パスワード ページがあり、その後に記憶に残る単語のページがあり、そこで記憶に残る単語の文字を入力する必要があることです。

今、私はなんとか最初のページを通過し、記憶に残る単語の文字を入力する必要がある2番目のページを取得しましたが、それをしようとすると(2番目の投稿が)機能しません-再びログインにリダイレクトされます。

今、何が問題なのかを調査しようとしましたが、なぜ機能していないのかまだわかりません。スクリプトを実行すると JSESSIONID が変更されるのに対し、通常のログインではサーバーから JSESSIONID が渡されることがわかりました。私は使っている:

curl_setopt($this->curl, CURLOPT_COOKIEFILE, 'cookie.txt');
curl_setopt($this->curl, CURLOPT_COOKIEJAR, 'cookie.txt');

しかし、ファイルを確認すると空であり、作成されてから変更されていません。Amd はい、ファイルを書き込むことができます (777 の権限があります)。

これが問題なのか他の問題なのかはわかりませんが、答えを探して別のことを試しましたが、何も機能しませんでした。したがって、どんなアイデアでも大歓迎です。

ありがとうございました

4

1 に答える 1

0

これは私が動作を確認できる例です。cookieJar ファイルのフル パスが表示され、スクリプトの実行場所からフル パスが取得されるため、ほとんどの OS で動作するはずです。

<?PHP
$cookiepath = __DIR__.DIRECTORY_SEPARATOR.'cookieJar.txt';
echo "Saving cookies to: $cookiepath\n";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.google.com");
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; rv:11.0) Gecko/20100101 Firefox/11.0');
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookiepath);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookiepath);
curl_setopt($ch, CURLOPT_HEADER  ,1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER  ,1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION  ,1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$data = curl_exec($ch);
?>
于 2012-03-21T01:19:19.757 に答える