我的问题可能是愚蠢的。但我想知道,如果有任何代码阻止页面打开,如果尝试使用链接但只在之后打开。如果它的链接来自另一个页面。
例如,如果我在页面 contact.php 上有表单,用户会被重定向到页面 contact_success.php 。
现在我想,如果有人试图直接从浏览器地址栏打开 contact_success.php 页面,则不应该打开它。只有在 contact.php 页面提交表单后才能打开它。
答案 0 :(得分:1)
一种简单的方法就是在if
页面上使用contact_success.php
检查,例如
if($_SERVER['REQUEST_METHOD'] = "POST"){
//display page
} else {
echo 'You cannot view this page.';
//add redirect, if you like
}
答案 1 :(得分:1)
在contact.php中为用户设置会话或cookie,然后在contact_sucess.php中检查它是否存在。
例如:
contact.php:
<?php
$_SESSION['visited_login'] = 'yes';
?>
contact_sucess.php:
<?php
if (isset($_SESSION['visited_login']) && $_SESSION['visited_login']=="yes") {
// output tanks
} else {
echo "go away";
die;
}
?>
答案 2 :(得分:0)
您可以为该示例使用会话:
当你提交联系表格时,有一个页面,你将处理用户输入,我将使用(参考#1)
contact_process.php
$ _ SESSION [&#39;成功&#39;] =&#39;成功&#39;;
(this code will create a session)
然后一旦成功处理用户输入,就会有另一个页面(参考#2)
contact_success.php
如果(isset($ _ SESSION [&#39;成功&#39;])
{
//Output if it is success
}
否则{
头(&#39;位置:contact.php&#39);
}
(此代码将检查会话是否存在,如果是,所需的输出将显示,如果不存在,则应该返回contact.php)
您可以在此处轻松学习会话http://www.w3schools.com/php/php_sessions.asp