我正在制作一个用户必须登录才能查看某些内容的网站。我通过将服务器根目录设置为C:\WAMP\www\public
并将用户必须登录才能查看的所有文件放在不同的目录(即C:\WAMP\www\private
)中来实现这一点。如果私有目录不在网络服务器上,登录用户如何访问私有目录中的文件?通过一个要求。
<?php
session_start();
$destination = $_GET['d'];
if(isset($_SESSION['loggedInUser']))
require '../private/'.$destination;
else
require 'signinrequired.html';
?>
但有一个问题。如果我需要一个脚本,那么它将不会被解释,因为它不在网络根目录中(如这里的答案中所述)。那么我该如何解决这个问题或完全重新设计系统呢?
解决方案:我感到困惑并编造了一个不存在的问题。可以通过将 HTML 文件存储在不在服务器根目录(也称为 Web 根目录,不管它叫什么)中并使用服务器根目录中的 PHP 文件包含它们来将 HTML 与 PHP 分开。由于 HTML 文件没有被解释(不是脚本),因此它可以工作。由于 PHP 文件由服务器解释,它们必须位于服务器根目录中,但由于它们被解释(并且源代码不只是提供给客户端),因此客户端无法看到程序的内部工作。如果其他人像我一样感到困惑,那么希望我能解释一下以解开他们的困惑。