2016-07-11 77 views
0

我在使用isset顯示頁面上的內容時遇到問題。使用isset顯示頁面內容

我的PHP文件被稱爲messages.php

我指導我的用戶鏈接到本網址:messages.php?inbox using if(isset($_GET['inbox'])) {}顯示用戶的收件箱。與其他用戶的選項,如撰寫郵件同樣的原則是:messages.php?compose再次使用isset

我唯一的問題是,我不能像domain.com/messages.phpdomain.com/messages.php?somethingrandom.

手動輸入的東西阻止人們有沒有辦法直接用戶在messages.php?收件箱中輸入地址欄時不會分配給isset?

我曾嘗試使用開關,但似乎沒有得到它與我的HTML佈局如何正常工作。

整個文件的一個例子是這裏http://pastebin.com/SfqN2L7g

我是相當新的PHP和想我可能已經下降了複雜的路由。

任何意見,將不勝感激。

感謝

+0

使用'post'而不是'get',爲每個請求生成一個隨機標記,檢查用戶是否先登錄,因爲我假設它是他的收件箱等等。多種方式,請選擇。 – Andrew

+0

簡單的方法:在文件開始時,檢查「if(get(one)|| get(two){OK} else {REDIRECT to INBOX}' –

+0

MarcosPérezGude:謝謝您的建議。此方法但在我的瀏覽器中不斷收到錯誤「該網頁未正確重定向」 – James

回答

1

你加入已經將工作的答案,但我通常喜歡具有valid選項的陣列我可能會稍後再檢查。

$validPages = array('inbox', 'compose'); 
$pageFound = false; 

foreach ($validPages as $validPage) { 
    if (isset($_GET[$validPage])) { 
     $pageFound = true; 
     break; 
    } 
} 

if (! $pageFound) { 
    header('Location: /messages.php?inbox'); 
} 
0

感謝馬科斯·佩雷斯·古德的幫助下,得到的答覆如下: