2013-05-07 24 views
1

我想知道是否有人知道如何实现此目的。检测链接是否在新选项卡或窗口中打开或直接访问网址

我有一个index.php,它使用jQuery将文件page.php加载到div中。这个page.php有一个链接,当你点击它时,将page2.php加载到同一个div中(所以url始终保持为index.php)。

我想这样做,如果你打开page.php在新标签页或窗口中的链接,而不是加载page2.php,它会加载index.php(在page.php在div中)。如果您直接在浏览器中输入到page2.php的链接,也是如此。

+0

除非您指定将目标设置为空白的任何链接转到'index.php',否则不可能。 – 2013-05-07 19:07:27

+0

你可以改变'page.php'中的链接指向'index.php?page = page2'并在你的jQuery AJAX调用中重写它们。 – Lukas 2013-05-07 19:09:53

回答

-1

在index.php上设置一个全局变量,如果加载page.php时不存在,则重定向到index.php。

+0

抱歉matthew,我刚开始学习php。你能给我一些示例代码吗? – user2353418 2013-05-07 19:18:11

+0

-1 - 全局变量不会保留在多个页面视图上,除非它们被保存在会话或其他存储中 – 2013-09-27 15:13:37

0

使用会话。

在第1页:

session_start(); 
$_SESSION['beenhere'] = 1; 

页2

session_start(); 
if(!isset($_SESSION['beenhere'])){ 
    header('./index.php'); 
} 
//rest of page.... 
+0

我尝试将第1页的代码添加到我的index.php和第2页的代码中以添加到我的page2.php。但它不起作用。 – user2353418 2013-05-07 21:02:56

0

这是 '在新标签中打开' 的一部分

的index.php

为了使其也工作,如果用户写直接链接到页面只检查在第2页,如果它有一个引用者,如果不只是送他到index.php

使page2.php

if ($_SERVER['HTTP_REFERER']!="index.php"){ 
    header("Location: http://www.example.com/index.php"); 
} 
相关问题