我有一个process.php
页面,
<p>This is process page</p>
我有一个index.php
页面:
<?php include_once 'process.php' ?>
当我在Web URL中键入process.php
或index.php
时,两个URL都会输出相同的结果:This is process page.
我想要的是
process.php
页,或者仅从index.php
页访问。process.php
时,它应该重定向到其他地方或不打印任何内容。我该怎么做?任何帮助表示赞赏。
答案 0 :(得分:2)
这通常是通过变量或常量完成的:
index.php
define('IN_APP', true);
include('process.php'); //APP will be defined
process.php
if (!defined('IN_APP')) {
//You can also add redirects here.
die('Do not access this script directly.');
}
答案 1 :(得分:2)
您可以检查所包含文件的页面名称与用户所在页面的名称...以这种方式进行操作,无需在代码中添加额外的变量。
更改process.php
if(basename(__FILE__, ".php") != basename($_SERVER["REQUEST_URI"], ".php")){
echo "<p>This is process page</p>";
}
解释功能:
这将返回包含的文件名:
basename(__FILE__, ".php")
这将返回用户所在的文件名:
basename($_SERVER["REQUEST_URI"], ".php")
答案 2 :(得分:0)
尝试此代码
index.php
$sourcePage = __FILE__;
include 'process.php';
现在process.php
if (isset($sourcePage)){
echo "Page is legally called from ".$sourcePage;
//or do your stuff here
}else{
die("Page was accessed directly, execution aborted.");
}