2011-08-20 81 views
1

我正在設計一個尋寶遊戲類的在線測驗。總共有10個文件,即1.php,2.php..10.php。只有當玩家回答當前問題頁面,他必須重定向到下一頁,但在我的情況下,如果玩家修改URL,他可以查看下一個問題,我可以防止這個。感謝您的幫助。PHP重定向到頁面問題

+0

你可以使用會話來存儲玩家所在的步驟,然後只需要一個question.php頁面,根據他們的進度向他們展示下一個問題。 – cope360

回答

1

問題完成時存儲會話變量。如果會話變量的值小於被訪問問題的編號,則拒絕訪問。

session_start(); 
// just finished question 5, for example 
// The user may now access question 6 
$_SESSION['question'] = 6; 


// User attempts to access a question: 
// Suppose $current_question is 7 
if ($_SESSION['question'] < $current_question) { 
    // deny 
} 
else { 
    // display the question 
} 
+0

,謝謝你的幫助。我通過存儲數據庫中回答的問題數量並使用「標題」命令重定向到該頁面來解決問題。 –

2

存儲用戶在會話變量中訪問的最大頁碼。

即在4.php,你會做$_SESSION['page'] = 4;

在5.php,你會檢查$_SESSION['page']至少4

請注意,你需要呼籲session_start()在使用會話的所有頁面上訪問$_SESSION之前。

-1

只是將其更改爲不可預知的名字,像kiran.php代替1.PHP,likeyouknowit.php代替2.PHP等

+1

直到有人將它們寫下來並將它們發佈到某個論壇。 –

+0

這並不能解決客戶的長期問題 –

+0

@Michael:和他們寫下答案不同嗎?我個人喜歡這種方式:所以如果我必須中途退出,我仍然可以在以後再回來,而不是再次這樣做(除非OP需要它)。馬克:OP說他只有10頁,所以我選擇了一個簡單的解決方案,而不是一個可擴展的解決方案。 –

0

我通過存儲在數據庫中回答問題的數量和使用header命令重定向到該頁面解決了這個問題。

+0

在每個頁面中檢查是否(回答的問題數量=當前問題-1)。如果真正顯示問題,則重定向到用戶實際應該在的頁面。 –