Ajax readfile関数とセキュリティについて

【講座名】
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を指定する引数の部分を、第三者が外部から自由に変えられるようなプログラムだと、セキュリティ上問題があるということです。


【ワンポイント】
レンタルサーバーによっては、関連する関数も使えないようになっているかもしれません。ファイルを読み込む方法は、他にもいろいろありますが、一番簡単なのは、使用を許可しているレンタルサーバーに変更することです。

スポンサードリンク


スポンサードリンク






プログラミング入門 Q&A TOPへ