私の理解が正しければ、コントローラーページからリンクされたすべてのページの上部に LOGIN チェックを入れています (index.php を想定)。
もしそうなら、あなたのリンクされた各ページの上部でログインチェックを行う必要はありません。index.php からのみです。ログインが index.php の先頭で成功した場合は、目的のビュー ページをインクルードし続けます。
たとえば(index.php内)
<?php
if ( !$user->checkSession() )
header('Location: login.php');
if ( $_GET['p'] == 'viewPageName' )
include('modules/viewPageName.php' )
elseif and so on
?>
編集
これで、あなたの質問をよりよく理解できました。
解決策 1 : index.php 内
(先頭
に配置)
<?php
define('DIRECT', true);
your login check, etc...
?>
あなたの他のファイルでは、一番上に置いてください
<?php
if (!defined('DIRECT')) die('No direct access is allowed');
other code, etc...
?>
解決策 2:
.htaccess ファイルを他のすべてのファイルが配置されているフォルダーに配置し、それらのファイルへの直接アクセスを拒否します。
.htaccess に次を入力します。
deny from all
解決策 3:
index.php で $db ファイルを定義し、index.php でクラスをセットアップしたと仮定すると、DB クラスを定義していないため、他のファイルはエラーを返します。
つまり、 $db = new Database(); を定義した場合、index.php では $db がまだ定義されていないため、他のファイルに直接アクセスしようとするとエラーが発生します。