1

私は次のコードを持っています:

$homepage = file_get_contents("https://example.com/specific_page");
echo $homepage;

ブラウザには、アクセスする必要のあるサイトのセッションがすでにあるため、新しいタブでURLを開くと、ページが正しく読み込まれます。

問題は、phpスクリプトが「ログインしていません」ページにリダイレクトすることです。ブラウザを再起動した後でもURLが利用可能であることに注意してください。

サイトにログインするコードを記述せずにコンテンツを取得する方法はありますか?

4

2 に答える 2

3

Webサイトが任意の外部Webサイト上のデータにアクセスできる場合、セキュリティ上の大きな問題になります。これを想像してみてください:file_get_contents('https://yourbank.com/all-your-details')

これを行う唯一の方法は、外部Webサイトでユーザーにログイン資格情報を要求し、手動でログインすることです。ただし、認証プロセスが変更される可能性があるため、これは信頼できません(そして、誰かにパスワードを要求するのは非常に失礼です)。

これは通常、WebサービスAPIが使用される目的ですが、関心のあるサイトで利用できるものがない場合は、行き詰まっています。


Webサイトのログイン資格情報をすでに知っている場合は、Blauesockeが概説したアプローチを使用して、それらをスクリプトにハードコードすることができますが、詳細が現在のユーザーに固有である場合、これは機能しません。

于 2013-01-06T23:25:44.893 に答える
3

PHPはサーバーサイドで実行されるため、独自のセッション処理があり、ブラウザセッションへのリンクはありません。あなたはこれをするのと同じようなcURLオプションCURLOPT_COOKIEJARを使うことができます。cURLを使用すると、PHPを介してログインし、要求しているWebサイトのPHPセッションを維持できます。リンクしたcURLドキュメントにたくさんの例があります。

于 2013-01-06T23:27:04.357 に答える