2014-04-14 286 views
1

我有一個選項讓用戶寫出他們不想看到的頁面。用OR替換逗號(PHP)

簡化,是一個文本輸入,其中雖然他們小費,他們會寫網頁的名稱,例如「接觸」,「生物」等

「接觸,生物」我要創建一個條件來隱藏這些頁面,所以內容會顯示這樣的代碼:

if (('contact') || ('bio')) { 
    hide content 
} 

只鍵入一個頁面會很容易,但有更多的頁面,我不知道如何更換逗號到或有條件的。我該怎麼做?

+0

是否有他們需要輸入的特定原因?爲什麼不給他們複選框什麼隱藏? –

+2

你的過程令人困惑和脆弱 –

+0

順便說一句,你的'if'語句條件永遠是真的。你可能想用'[explode()'](http://uk1.php.net/manual/en/function.explode.php)做一些事情,然後檢查你正在尋找什麼結果數組。 –

回答

0

你應該先採取用戶輸入一個變量 比方說,你在$string

$string = "contact,bio,home"; 
$token = strtok($string, ","); 
$i=0; // To know how manny keywords are there. 
while ($token != false) 
{ 
echo "$token<br>"; 
$user_ip[i++] = strtok(","); 
} 

得到它,那麼你需要分析所有的頁面通過命名,並將其存儲在陣列。 可以說你將其存儲在$user_ip

然後,你需要像

if (($user_ip[0] === "contact") || ($user_ip[0] === "bio") { 
} 

比較及以上,如果檢查$user_ip.

+0

答案越來越接近我想要的。問題是我不知道他們想排除哪些頁面。我是PHP新手,所以如果你能解釋如何解析頁面名稱,那就太好了。 –

+0

@ audaz802根據您的需要更新我的答案。 –

+0

第二部分令我困惑。由於我不知道他們輸入了哪些數據以及有多少,如何比較? –

1

嘗試的所有成員使用下面的代碼:

$skip_pages = explode(",","contact, bio"); 
$current_page = "contact"; 

if(in_array($current_page,$skip_pages)){ 
    //redirect page to .... 
} 

//continue with page