【やりたい事】
楽天にログイン
↓
楽天のTOP or ポイントが確認できるページへ移動
↓
正規表現を用いて、楽天ポイントの部分を取得
↓
ポイントを表示
【情報】
ログイン画面
https://grp02.id.rakuten.co.jp/rms/nid/vc?__event=login&service_id=p11
のソースから、
ユーザーID「u=」
パスワード「p=」
他に何か必要な情報か?などやり方がわからず行き詰まっています。
【PHP】【mixi】
http://q.hatena.ne.jp/1248220478
を参考にし試しましたが、
楽天のTOPページがログインされていない状態で表示されるだけで駄目でした。
file_get_contentsでも構いませんし、PHPでできる方法などをお教え頂ければ幸いです。
宜しくお願い致します。
(調べたサイトのURLを記載しようと思いましたが文字制限にひっかかったので一部割愛して書かせて頂きました)
はじめまして。
具体的なスクリプトではなく方法というか指針程度ですが、ゴリゴリとHTTPヘッダの
中身を読んで、リダイレクト先とかクッキーなどを見つけていけばブラウザと同様の
挙動ができますよ。
ちょっと古いページですが
http://www.atmarkit.co.jp/fsecurity/rensai/securitytips/030liveh...
に紹介されているLiveHTTPHeadersを使えば、ブラウザの送るリクエストヘッダー
とサーバから返されるレスポンスヘッダーが簡単に確認できます。
まずは、通常のブラウザで、ログインからポイントを確認するまで、全てのヘッダー
を記録して、その中でブラウザが送っている情報(リクエストヘッダー)を送るような
スクリプトを組めばOKです。
サーバから送られるクッキーも、正規表現などでパラメータの値を読み取って
その値をfsockopen()などを使ってサーバに返せば良いと思います。
リダイレクトが入ると上記の事を複数回繰り返す(もちろんサーバからの応答に
応じてリクエストを順次送ります。)感じになりますが、(環境依存らしいですが)
PHPでもssl通信できますので十分作成可能ですよ。
http://jp2.php.net/manual/ja/function.fsockopen.php
スマートな方法ではありませんでしたが、まずはどういったヘッダーのやりとりが
されているのかを確認するのが第一でしょう。
私も楽天にマイページを持っていますが、ログイン後にSSL通信に移行してセッション管理しているようですので、PHPでポイントを抜き出すのは不可能に近いと思います。
逆に考えて、そんなに簡単にポイントを確認できるようでは、セキュリティ上のリスクを抱えていることになります。
お答え有難う御座います。
追記で下のコメント欄に書かせて頂きましたが、
「PHP&Curlの オークションに出品模擬問題」
http://www.phppro.jp/qa/detail.php?id=290
によると、
2006年の12月にはPHPのcURLでログインできている方がいるので、
「curl_setopt」などの設定がきちんとできればログインできるのかと思っていました…。
はじめまして。
具体的なスクリプトではなく方法というか指針程度ですが、ゴリゴリとHTTPヘッダの
中身を読んで、リダイレクト先とかクッキーなどを見つけていけばブラウザと同様の
挙動ができますよ。
ちょっと古いページですが
http://www.atmarkit.co.jp/fsecurity/rensai/securitytips/030liveh...
に紹介されているLiveHTTPHeadersを使えば、ブラウザの送るリクエストヘッダー
とサーバから返されるレスポンスヘッダーが簡単に確認できます。
まずは、通常のブラウザで、ログインからポイントを確認するまで、全てのヘッダー
を記録して、その中でブラウザが送っている情報(リクエストヘッダー)を送るような
スクリプトを組めばOKです。
サーバから送られるクッキーも、正規表現などでパラメータの値を読み取って
その値をfsockopen()などを使ってサーバに返せば良いと思います。
リダイレクトが入ると上記の事を複数回繰り返す(もちろんサーバからの応答に
応じてリクエストを順次送ります。)感じになりますが、(環境依存らしいですが)
PHPでもssl通信できますので十分作成可能ですよ。
http://jp2.php.net/manual/ja/function.fsockopen.php
スマートな方法ではありませんでしたが、まずはどういったヘッダーのやりとりが
されているのかを確認するのが第一でしょう。
有難う御座います。
教えて頂いたサイトを見て実際にLiveHTTPHeadersをダウンロードしFirefoxで色々と試してみました。
「難しそうだから自分には無理だな…」と思いましたが、学ぶことがありました。
結論から申し上げると、
doumotoさんが以前にはてなでご質問をされていた、
「PHPスクリプトの質問です。」
http://q.hatena.ne.jp/1242080378
に関する、
「PEAR::HTTP_Clientでサイトの内容取得」
http://itpro.nikkeibp.co.jp/article/COLUMN/20070507/270079/
を改めて見直し、試したら成功致しました。
($login_params と $login_url の見直しにて)
あまりにあっけなくできて逆に驚きました。
「PEAR::HTTP_Client」は凄いです…(^^;
皆様、有難う御座いました。
有難う御座います。
教えて頂いたサイトを見て実際にLiveHTTPHeadersをダウンロードしFirefoxで色々と試してみました。
「難しそうだから自分には無理だな…」と思いましたが、学ぶことがありました。
結論から申し上げると、
doumotoさんが以前にはてなでご質問をされていた、
「PHPスクリプトの質問です。」
http://q.hatena.ne.jp/1242080378
に関する、
「PEAR::HTTP_Clientでサイトの内容取得」
http://itpro.nikkeibp.co.jp/article/COLUMN/20070507/270079/
を改めて見直し、試したら成功致しました。
($login_params と $login_url の見直しにて)
あまりにあっけなくできて逆に驚きました。
「PEAR::HTTP_Client」は凄いです…(^^;
皆様、有難う御座いました。