用户直接访问php文件时如何使页面空白?

Posted

技术标签:

【中文标题】用户直接访问php文件时如何使页面空白?【英文标题】:How to make page blank when user access php file directly? 【发布时间】:2013-11-27 11:34:45 【问题描述】:

所以我正在尝试从我的 html 文件中创建一个主题。并使用require('file.php') 其中file.php 是我主题的一系列不同组件。现在当我直接访问文件时,我仍然看到 html。当用户直接访问file.php时,如何让它显示一个空白页面?

说明 所以假设我制作 index.php 并且我想包含头文件(header.php

当我require('header.php') 时,一切正常。现在当我尝试访问header.php 时,我可以看到它的html 内容。如何使这个显示为空白而不是看到header.php 块? 谢谢

【问题讨论】:

if (条件) die(); 【参考方案1】:

在这种情况下,如果你想在index.php 等内部执行header.php,你需要在父文件中添加或define 一个标志(无论你想在哪里执行header.php 或简单地添加到所有父文件中调用的公共文件),在 header.php 文件中,您需要检查定义的标志是否设置或具有某些值。如果未设置,则使用die(); 函数停止执行。

在 index.php 中

<?php $HeaderAllow ='1';  ?>

在头文件中

 <?php 
     if($HeaderAllow=='' or !isset($HeaderAllow))
         die();
     
 ?>

【讨论】:

我不明白你的意思。 :S 你能详细说明一下吗? 更新了cmets,请检查 谢谢 :) 现在很容易 :)【参考方案2】:

您可以在此处使用$_SERVER['SCRIPT_FILENAME'] 进行检查,然后将header.php 中的页面留空。

<?php
if($_SERVER['SCRIPT_FILENAME'] == 'header.php') 
    exit();

【讨论】:

【参考方案3】:

将包含文件放在单独的文件夹中并使用.htaccess 进行保护是个好主意。

同样的问题。

deny direct access to a folder and file by htaccess

【讨论】:

- Maz - 拒绝访问是一回事,但如果我只想让页面显示为空白怎么办? 那么你可以在索引文件中设置一些变量。并检查 header.php 中的变量。如果有人直接访问此字段,则不会设置变量,因此您可以简单地回显 die() 或退出。在页面的顶部。请参阅@Chinnu R 编写的上述代码 sn-p【参考方案4】:

最简单的方法是将您的包含放在一个目录中,并在您的 .htaccess 文件中拒绝对该目录的访问

【讨论】:

以上是关于用户直接访问php文件时如何使页面空白?的主要内容,如果未能解决你的问题,请参考以下文章

如何使存储的图像文件夹只能通过 php 代码访问

访问网站文件夹时为空白页

如何不让用户直接从AJAX使用的浏览器访问php文件?

php如何跳转一个链接,并隐藏这个链接?

PHP:如何阻止对文件的直接 URL 访问,但仍允许登录用户下载它?

如何拒绝直接访问网站文件但允许网站文件通过包含'file.php'相互访问?