Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
包含的php页面是否可以显示有关请求页面的任何信息?如果没有,我如何发送?_Php - Fatal编程技术网

包含的php页面是否可以显示有关请求页面的任何信息?如果没有,我如何发送?

包含的php页面是否可以显示有关请求页面的任何信息?如果没有,我如何发送?,php,Php,我有两个页面1.php和2.php 2.php(即秘密页面)无法访问,除非1.php将其发送到该页面 在1.php上,用户登录。因此,如果他登录,那么他可以看到2.php 在我的代码中,我使用了include,我的想法是发送类似字符串的内容,并在2.php中进行匹配检查。2.php如果直接访问,则必须为空。 我该怎么做 谢谢大家! 使用 $ref = $_SERVER['HTTP_REFERER']; 要在page2.php上找到referer页面并进行匹配,请在1.php上注册e sessi

我有两个页面1.php和2.php

2.php(即秘密页面)无法访问,除非1.php将其发送到该页面

在1.php上,用户登录。因此,如果他登录,那么他可以看到2.php

在我的代码中,我使用了
include
,我的想法是发送类似字符串的内容,并在2.php中进行匹配检查。2.php如果直接访问,则必须为空。 我该怎么做

谢谢大家!

使用

$ref = $_SERVER['HTTP_REFERER'];

要在page2.php上找到referer页面并进行匹配,请在1.php上注册e session变量,然后在2.php上读取此变量

编辑:

在1.php上,在脚本的开头使用以下命令启动会话:

会话_start()

然后,如果登录成功,请注册会话变量,例如:

$\u会话[“登录”]=true

关于2.php:

<?
session_start();
if($_SESSION["login"])
{
    // your code here

}
else
{
    echo "Access denied";
}

?>

这是会话的典型任务。我建议您使用会话和会话变量

所以我是这样做的:

<?php
//this is php 1
session_start();

if($_GET['name']=='Steaven' && $_GET['password']=='abcd') {
   $_SESSION['login']=true;
   // you could use redirect
   header('Location:'php2.php');
}
?>


<?php
//this is php 2
session_start();
if(isset($_SESSION['login'])) {
   if(!$_SESSION['login']) {
      exit();
   }
} else exit();
?>

你好,谢谢你的回答。然而,有人能做些什么并访问它吗?这根本不是一个安全的解决方案。引用程序是由客户端提供的,因此很容易伪造。您好,我可以举个例子吗?清理会话需要多长时间?它基于您的php.ini,最好是给用户一个注销链接并清除它。或者,您可能希望在代码执行后,在2.php的末尾清除会话;必须是php文件调用的第一个函数。所以把它放在php文档的开头。我还建议您在退出函数之前将重定向放在更安全的位置,例如header('Location:'php1.php');然后调用退出函数。