PHPでヤフーオークションの画面を表示したいのですが、以下のように単純に読み込むだけでは、非ログインのゲスト画面が表示されます。
>>
<?php
$file = file($_POST['name']);
echo($_POST['name']);
foreach($file as $line){
echo($line);
}
?>
<<
ログイン後の、こんにちは、hogehoge さん の画面を表示させるのはどうすればよいでしょうか?ブラウザーではログイン済みで、ログイン後の画面が表示されます。
出来れば、ズバリのコードを書いていただけると助かります。
ズバリはちょっと手がかかるので、リンクですみませんが。
http://itpro.nikkeibp.co.jp/article/COLUMN/20070507/270079/
リンクはmixiへのログインですが、PEAR::HTTP_Clientを使うとセッションを簡単に保持する事ができます。
formで渡すinputのnameなどを揃えてあげればログイン後のHTMLが取得できると思います。
(リンク先の$login_paramsですね)
最後のurlがなんとなくアレだけど、ログインするのは外部のシステムなんで、そういう一般論を言われても。┐(´ー`)┌。
http://dev.ishinao.net/archives/000021.html
ログインのAPIが公開されない限り、現実問題として実現不可能って結論かなあと。
ズバリはちょっと手がかかるので、リンクですみませんが。
http://itpro.nikkeibp.co.jp/article/COLUMN/20070507/270079/
リンクはmixiへのログインですが、PEAR::HTTP_Clientを使うとセッションを簡単に保持する事ができます。
formで渡すinputのnameなどを揃えてあげればログイン後のHTMLが取得できると思います。
(リンク先の$login_paramsですね)
おおお、ありがとうございます。残念ながら糞虫mixiがレイアウトを変更してしまったために、サンプルそのものはうまく動作しない(実際はしてるんだけど、アンマッチで表示されない)ので、単純にベタっと出力してみると、ログイン後の画面を抜いてきました。
$response = $client->currentResponse();
foreach($response as $line){
echo($line);
}
あとでヤフオクも試して見ます( ̄ー ̄)。
リンク先は間違えました。失礼しました。
プログラムの中でログインページにポストし、
その時のクッキーを保持し、実際に取得したいページをリクエストするときに、
そのクッキーを追加してリクエストするということです。
perlでは参考にならないかも知れませんが、自身で過去に書いたコードです。
# ログイン
my $url = 'http://hogehoge/index.php#login';
my %formdata = ('userID' => 'fugefuge', 'userPassword' => 'password', 'exec' => 'Login::Login');
my $request = POST($url, [%formdata]);
my $res = $ua->request ($request);
my $cookies = $res->header('Set-Cookie');
# エントリページへ
$url = 'http://hogehoge/index.php?view_c=Blog::PostEntry.html&user-id=fu...
$request = GET($url);
$request->header(cookie => join(';', $cookies));
$res = $ua->request ($request);
ありがとうございます。結局、言語を問わず、セッションを保持するにはクッキーがキモのようです。perlも触れなくはないのですが、HTMLを適当に表示したり、文字列をいじり回すのには、phpのほうがラクなので、phpでシステムを構築しています。
ちなみに、yahooのログインページのソースを見ると、
<input name="login" id="username" …>
<input name="passwd" id="passwd" …>
に、なっていますので、PHPのPEAR::HTTP_Clientで読み込む場合は、下記でOKでした。
$login_params = array("next_url" => "/0-category.html", "login" => $email,
"passwd" => $password);
$login_url = "http://login.yahoo.co.jp/config/login?.lg=jp&.intl=jp&.src=auc&....";
つーか、SSLだと通らないのは、SSLのライブラリーがぶっ込んでないのが原因かなと。自分は気にしないので別にいいんですが( ̄ー ̄)。
おおお、ありがとうございます。残念ながら糞虫mixiがレイアウトを変更してしまったために、サンプルそのものはうまく動作しない(実際はしてるんだけど、アンマッチで表示されない)ので、単純にベタっと出力してみると、ログイン後の画面を抜いてきました。
あとでヤフオクも試して見ます( ̄ー ̄)。