如果用户未在父窗口中进行选择,如何阻止访问"子窗口"

时间:2015-06-05 19:42:26

标签: php parent-child isset

我试图在某个文件的开头包含一个小的PHP代码(这是一个"新窗口"),这会阻止用户直接访问该文件,如果他将URL直接输入到他的浏览器中。

换句话说:我的网站以这样一种方式运作,首先用户必须在父窗口上进行无线电选择,然后点击" 提交",这会打开一个新的孩子"窗口。

但是,首先用户必须登录!

为了防止窗口打开,我在PHP文件的最开头(父窗口和子窗口)编写了这段代码:

 <?php session_start();

 if (!(isset($_SESSION['login']) && $_SESSION['login'] != '')) {

        header ("Location: www.example.com/access_denied.php");

 exit() ;

如果用户未登录,并且他尝试直接转到特定网址,则会将其重定向到显示&#34; ACCESS DENIED &#34;文本。

但是,对于这种特殊情况(如上所述),用户首先需要在父页面上进行选择。

如果他没有在父页面上选择任何内容,只需输入&#34;子窗口的网址&#34;在他的浏览器中,他仍然能够直接访问php文件(我不想要)

父页面上的无线电选择如下:

 if(isset($_POST['submit'])  {

 $_SESSION['response'] = $_POST['selection'];

在child_window上,我添加了以下代码:

 if (!(isset($_SESSION['login']) && $_SESSION['login'] != '') ||     
 (isset($_SESSION['login']) && (!(isset($_POST['selection'])))     {

 header ("Location: www.example.com/access_denied.php");

含义:即使用户已登录..........除非他在父页面上做出选择,否则他无法访问子窗口。

但是,这段代码无效。

我甚至尝试创建一个随机的&#34; $ _ SESSION &#34;父页面上的变量,一旦进行了无线电选择就被激活.............并且,在子窗口上,我写了一个代码,说:如果这个随机$ _SESSION尚未设置,子窗口将提供&#34; 访问被拒绝&#34;消息。

但是,这不起作用。用户仍然可以通过键入直接URL来查看和访问子窗口。

任何帮助都将不胜感激。

由于

1 个答案:

答案 0 :(得分:0)

在child_window上你正在调用这个

MAX_TABLE_SIZE

请致电

(isset($_SESSION['login']) && (!(isset($_POST['selection'])))     {

您应该在父窗口上调用您在会话中设置的标记