スレッド表示 | フラット表示〕 全トピック 920 件中 34 番目 次≫ ≪前

php版 WWW::Mechanizeについて

created: 2008-11-12 15:03 | modified: 2008-11-16 21:04 | reply: 2

[4252] php版 WWW::Mechanizeについて

user: やす | created: 2008-11-12 15:03
いつもお世話になっております。
今回の件に関しましては急ぎではありませんので
お時間のあるときにお返事いただければと思います。

現在はHttpClient.class.phpを使ってcgiファイルを実行し、
その結果を利用してシステムを運用しています。

cgiファイルで具体的に何をしているかというと
クッキーの値を保持してsubmitのボタンを押して次ページへ
移動してそのページのデータを取得しています。

例えば
ページAにsubmitボタンがあり、ページBへ遷移します。
ことのきページAはクッキーの値があるときはsubmitできますが
クッキーの値がない場合はゲストユーザとして扱われsubmitはできません。

当然のことながらページBはAからポストされたデータを結果として処理します。

ここで質問のなのですがpearを使えばクッキーを保持できることはわかるのですが$mech->submit()のような機能はあるのでしょうか?

formデータを直接postで目的のページへ送る方法も検討してみたのですが
なぜかうまくいきませんでした。
$mech->submit()のような機能があれば一発解決かと思っているのですが
ご存じないでしょうか?

よろしくお願いいたします。
reply: 4253 返信 編集 削除

[4253] WWW::Mechanize と PEAR/HTTP_Client

user: ゆうじ | created: 2008-11-12 19:16
こんばんわ。

どちらも使ったことがありませんが
向学のためちょっと調べみました。
何か勘違いしてる気もしますので
ちがってたら教えてください。

こちらのPealのサンプル見る限り
リクエストボディ(POSTのパラメータ)を添えて
POSTリクエストを送信してるようですね。
($mech->submit() はリクエストボディが無いもの?)
http://e8y.net/mag/007-www-mechanize/
# トップにアクセスし、
$mech->get('http://***.jp/');

# ログイン。
$mech->submit_form(
fields => {
email => '***@***.com',
password => '****',
},
);

$mech->get('http://***.jp/home.pl');

# 足あとページに遷移
$mech->get('http://***.jp/show_log.pl');

もうご覧になってるかもしれませんが
ここにHTTP_Clientのサンプルがありました。
こちらも同じような流れです。

●PEAR::HTTP_Clientでサイトの内容取得
http://www.phppro.jp/phptips/archives/vol13/1
$client =& new HTTP_Client(); 

// (1)サーバーに、クッキーをセットして
//    もらうためPOSTリクエスト
$client->post($login_url, $login_params);

// (2)本来獲得したいページをリクエスト
$client->get($new_friend_diary_url);

// (3)レスポンス獲得
$response = $client->currentResponse();

HTTP_Clientはクッキーもイケるとあるので、
あらかじめ、サーバにクッキーをセットしてもらうため
POST または GET リクエスト(1)を送信した後、
さらに(2)で $client->post(...) とすれば
$mech->submit() と同等の結果が得られるのでは無いかと考えます。
Parent: 4252  reply: 4254 返信 編集 削除

[4254] 後日試して報告いたします。

user: やす | created: 2008-11-16 21:04
いつもありがとうございます。

後日試して結果を報告したいと思います。
お忙しい中教えていただきありがとうございます。
Parent: 4253  返信 編集 削除
スレッド表示 | フラット表示〕 全トピック 920 件中 34 番目 次≫ ≪前
ページの一番上へ
Googleグックマークに登録 Yahooグックマークに登録 livedoorクリップに登録 @niftyクリップに登録 はてなブックマークに登録 deliciousに登録 Buzzurlに登録 FC2ブックマークに登録
最近更新された掲示板トピックス
管理人Blog
Yahoo Search

最近更新したNote
PHPマニュアル
今日のブックマーク
PHPマニュアル関数検索
関数名を入力し検索ボタンをクリック↑