我有一个名为index.php的主页..还有一个名为registration.php的注册页。
index.php中有一些逻辑,需要执行才能使网站正常工作。
所以我们假设网址是http://www.testwebsite.com
并且注册网址是:所以我们假设网址是http://www.testwebsite.com/registration.php
当用户立即导航到So时,假设url为http://www.testwebsite.com/registration.php,则index.php中的逻辑被绕过并且不会被执行并导致问题。
现在问题..
如果他们直接转到registration.php链接,我有没有办法将它们重定向到index.php页面?所以代码必须检查并查看index.php网页是否先被点击,如果没有被点击,那么它应该重定向到index.php。但是,如果index.php网站已被点击,那么它应该继续,而不是重定向回index.php。
答案 0 :(得分:1)
当" index.php"执行后你可以创建一个会话变量,如下所示:
<?php
session_start();
$_SESSION[ "index" ] = TRUE; // CREATE SESSION VARIABLE.
?>
现在,在&#34; registration.php&#34;检查会话变量:
<?php
session_start();
if ( ! isSet( $_SESSION[ "index" ] ) ) // IF SESSION VARIABLE DOES NOT EXIST.
header( "Location: index.php" ); // JUMP TO INDEX.
?>
这两个代码必须位于相应页面的顶部。
答案 1 :(得分:0)
您可以使用以下内容:
<?php
if (condition when you wanna go to index)
header("Location: ./index.php");
?>
答案 2 :(得分:0)
您设置了一个Cookie
我可以看到你正在使用PHP,这意味着设置一个会话变量,表明index.php已被命中。然后可以在registration.php上检查,如果没有设置则执行重定向。
查看文档over here,但它基本上是
的情况!isset($_SESSION['was_index_hit'])
答案 3 :(得分:0)
$_SERVER['HTTP_REFERER']
来确定上一页的内容。例如:
if( isset( $_SERVER['HTTP_REFERER'] ) ){
if( ! strpos( $_SERVER['HTTP_REFERER'], 'testwebsite.com' ) ){
header( 'Location: http://www.testwebsite.com' );
exit();
}
}
请注意,您无法始终信任此变量:
将用户代理引用到当前页面的页面地址(如果有)。这是由用户代理设置的。并非所有用户代理都会设置此功能,有些用户可以将HTTP_REFERER修改为功能。简而言之,它无法真正被信任。