ログインしていないすべてのユーザーを特定のディレクトリの任意のファイルからリダイレクトする方法を探しています。ログインしていないユーザーにPHPをリダイレクト
私はadmin
というディレクトリを持っています。
ログインしている唯一のユーザーは自分です。
私はこのようなスクリプトを使用して、私がログインしているかどうかを確認し、そうでなければリダイレクトします。
if(isset($_SESSION['user']) {
if($_SESSION['user'] == "username") {
echo "Welcome, " . $_SESSION['user'];
}
else {
header("Location: index.php");
}
}
かなり簡単です。かなりストレートです。私は機密データを扱っていないため、管理ページは自分のサイトの動作を妨げることができないため、余分なセキュリティは必要ありません。
しかし、特定のadmin
ディレクトリを確認するためにリダイレクトを作成するにはどうすればよいですか?
このスクリプトはすべての単一ページに含まれているので、そのディレクトリ以外のすべてのファイルを除外する必要があります。 in。
私はこれがうまくいくと思っていました。
index.php
ファイルが2つあると問題が発生しますか? 1つはメインディレクトリ用、もう1つはサブディレクトリ用ですか?
私は$directory = "admin/";
をスクリプトに含めましたが、それらのファイルがそのディレクトリにある場合にのみリダイレクトする方法についてはわかりません。
注意:私は急いでこれらの例を書いたので、他のエラーがあるかもしれません。もしそうなら、申し訳ありません。
if(isset($_SESSION['user']) {
if($_SESSION['user'] == "username") {
echo "Welcome, " . $_SESSION['user'];
}
else {
$directory = "admin/";
$redirect[] = array();
$redirect[] = "page1.php";
$redirect[] = "page2.php";
if (in_array(($_SERVER["SCRIPT_FILENAME"], $redirect)) {
header("Location: index.php");
}
}
}
ディレクトリにコードを追加するにはどうすればよいですか?
admin.phpのようなadminという名前のスクリプトは探していませんか? –
iirc、ルートからのパスを含める必要があります。その値をエコーすることでこれを試すことができます。または 'print_r($ _ SERVER);を実行してください。 – Garytje
これを読んだので、私は少しこれを理解していると思います。私は配列を使い続けようとしています。将来、 'admin'ディレクトリに1つか2つのファイルがあり、それがパブリックにアクセスできるので、すべてのファイルをリダイレクトしたくないからです。 –