我想在某個文件(這是一個「新窗口」)的開頭包含一個小的PHP代碼,這會阻止用戶直接訪問該文件,如果他直接將URL輸入到他的瀏覽器中的話。如何防止訪問「子窗口」,如果用戶沒有在父窗口上做出選擇
換句話說,我的網站的功能是,首先用戶必須在父窗口上進行無線電選擇,然後單擊「提交」,這會打開一個新的「子」窗口。
但是,首先用戶必須登錄!
爲了防止打開的窗口中,我寫了這個代碼在PHP文件的最開始(在父和子窗口):
<?php session_start();
if (!(isset($_SESSION['login']) && $_SESSION['login'] != '')) {
header ("Location: www.example.com/access_denied.php");
exit() ;
如果用戶沒有登錄,和他試圖直接訪問特定的URL,他被重定向到顯示「ACCESS DENIED」文本的文件。
但是,對於這種特殊情況(如上所述),用戶首先需要在父頁面上進行選擇。
如果他不選擇父頁面上的任何東西,只要輸入的URL,在他的瀏覽器中的「子窗口」,他仍然能夠直接訪問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");
含義:即使用戶是logge d在..........除非他已經在父頁面上做出選擇,否則他不能訪問子窗口。
但是,此代碼不起作用。
我甚至試圖在父頁面上創建一個隨機的「$ _SESSION」變量,一旦進行了無線電選擇,它就會被激活.............並且,在子窗口上,我寫了一個代碼,說:如果這個隨機的$ _SESSION沒有被設置,子窗口會給出一個「訪問被拒絕的」消息。
不過,這是行不通的。用戶仍然可以通過輸入直接URL來查看和訪問子窗口。
任何幫助,將不勝感激。
感謝
謝謝,Nemanja。但是,它沒有工作:(我也叫這個標籤 – phpnewbie2015