包含的php页面是否可以显示有关请求页面的任何信息?如果没有,我如何发送?
我有两个页面1.php和2.php 2.php(即秘密页面)无法访问,除非1.php将其发送到该页面 在1.php上,用户登录。因此,如果他登录,那么他可以看到2.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
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');然后调用退出函数。