ユーザーが特定のコンテンツを表示するためにログインする必要がある Web サイトを作成しています。これを実現するには、サーバー ルートを に設定し、C:\WAMP\www\public
ユーザーがログインして表示する必要があるすべてのファイルを別のディレクトリ (つまりC:\WAMP\www\private
) に配置します。Web サーバー上にない場合、ログインしたユーザーはプライベート ディレクトリ内のファイルにどのようにアクセスできますか? 要求を介して。
<?php
session_start();
$destination = $_GET['d'];
if(isset($_SESSION['loggedInUser']))
require '../private/'.$destination;
else
require 'signinrequired.html';
?>
しかし、問題があります。スクリプトが必要な場合、スクリプトは Web ルートにないため解釈されません (こちらの回答で説明されているように)。では、これを修正するか、システムを完全に再設計するにはどうすればよいでしょうか?
解決策: 混乱して、存在しない問題をでっち上げました。HTML ファイルをサーバー ルート (別名 Web ルート) 以外に保存し、サーバー ルートにある PHP ファイルを使用してそれらを含めることにより、HTML を PHP から分離することができます。HTML ファイルは解釈されない (スクリプトではない) ため、これは機能します。PHP ファイルはサーバーによって解釈されるため、サーバーのルートにある必要がありますが、解釈される (そしてソース コードがクライアントに提供されるだけではない) ため、クライアントはプログラムの内部構造を見ることができません。他の誰かが私と同じようにどういうわけか混乱した場合は、うまくいけば、彼らを解き放つために少し説明しました.