我试图在某个文件的开头包含一个小的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来查看和访问子窗口。
任何帮助都将不胜感激。
由于
答案 0 :(得分:0)
在child_window上你正在调用这个
MAX_TABLE_SIZE
请致电
(isset($_SESSION['login']) && (!(isset($_POST['selection']))) {
您应该在父窗口上调用您在会话中设置的标记