Ajax初心者入門講座 に関する質問
【質問】
はじめまして、いつも拝見させて頂いております。
今回 Ajax の講座のRSSサンプルを利用させて頂き、ホームページにブログの見出しをリンク付で読み込ませていた所、レンタルサーバーに上げていたのですが、セキュリティ的に問題があるかもしれないとのことで、RSSを表示するPHPファイルが読み込めなくなってしまっています。
エラーメッセージ
-------------------------------------------------------
file-access is disabled in the server configuration in
-------------------------------------------------------
最初の数日間は読み込めていましたので、おそらくサーバーの設定を変えられたのではと思います。
ローカルでは問題なく動いています。
何か解決方法などご存知でしたら教えて頂きたいです。宜しくお願い致します。
【回答】
PHPはバージョンによって、使える関数が異なります。またWebサーバーの管理者が自由に設定できます。
レンタルサーバーの場合は、ユーザーが設定を変えることができないので、似たような機能の関数を使ってみてください。
readfile関数をPHPマニュアルで調べると、「参考」という項目があります。これが関連する関数です。
http://www.php.net/manual/ja/function.readfile.php
すると file_get_contents という関数が、代わりに使えそうだとわかります。
readfile()
↓
file_get_contents(ここにURL);
詳細はこちら
http://www.php.net/manual/ja/function.file-get-contents.php
***注意点***
(1)file_get_contents関数は、当講座で使用している「phpdev423」のバージョンでは動きませんのでご注意ください。PHPのバージョンの問題です。したがって readfile関数を使っています。
(2)readfile関数や file_get_contents関数は、他のページのデータを扱うため、踏み台にされる危険があるので注意して使ってください。
URLを指定する引数の部分を、第三者が外部から自由に変えられるようなプログラムだと、セキュリティ上問題があるということです。
【ワンポイント】
レンタルサーバーによっては、関連する関数も使えないようになっているかもしれません。ファイルを読み込む方法は、他にもいろいろありますが、一番簡単なのは、使用を許可しているレンタルサーバーに変更することです。