2009-07-22 12 views
0

これはリモートサーバーであり、アクセス権がなく、FTPにしかアクセスできません。私は純粋に.htaccessではなくPHPを使ってこれをしたいと思います。あなたはweb.configファイルを置くところで、それにアクセスできる人とパスワードを設定する.netに似た方法がありますか?PHPを使用してディレクトリを保護するにはどうすればよいですか?

+0

ユーザーの資格情報はデータベースに保存されていますか?または、すべてのユーザーがディレクトリにアクセスするために使用する共通のログインがありますか? – inkedmn

答えて

2

Apacheのweb.configのような種類の機能は、.htaccessファイルと同じだと思います。PHPはページを生成するために使用されますが、ディレクトリレベルで作業しようとすると、 PHPが呼び出される前に来てください。

PHPスクリプトでは、HTTP認証のデータにアクセスできます。 $_SERVER、特にPHP_AUTH_USERおよびPHP_AUTH_PWを参照。保護はディレクトリではなく、ファイルのレベルで行われます。また、明らかにPHPファイル(サブディレクトリのイメージなど)にのみ適用されます。 HTTP Basic and Digest authentication with PHP

ディレクトリ全体のためにこれを行うための正しい方法は、Apacheの設定ファイルでの.htpasswd/.htaccessファイルで間違いなくある(または直接:

は、より多くの情報については、インスタンスのためのを見て、持つことができます)。

1

なぜPHPを使用していますか? .htaccessファイルはこの目的のために設計されています。データベースにユーザーログオンを保存するなどの作業をしようとしている場合は、Mod_auth_mysql

を実行してください認証ロジック。

+0

彼はサーバーにFTPアクセスしかできず、それでApacheのmodsをインストールできないのは明らかです。 – UnkwnTech

+0

Unkwntech:Trueですが、すでにインストールされている可能性があります。 –

1

私が知っている限り、これをPHPで純粋に行う方法はありません。

.htaccessは使用できますが、何らかの理由でアップロードできない場合は、PHP経由でhtaccessを作成することをお勧めします。

0

ディレクトリ保護は、常にWebサーバーの仕事です。 PHPスクリプトで何をするにしても、最初にスクリプトを実行するのはWebサーバーの責任です。ディレクトリ内の別のファイルにアクセスしようとすると、Webサーバーはスクリプトを見なくてもそのファイルをユーザーに渡します。ユーザーがディレクトリリストを要求した場合、それはユーザーに渡すWebサーバーです。

実際の「物理」ディレクトリを保護する場合は、Webサーバーを正しく設定する必要があります。ほとんどの場合、.htaccessファイルを使用します。

関連する問題