2012-04-06 88 views
0

我有腳本,其中一些url導致index.php?數據,並打開頁面 我怎樣才能使用該URL打開一個「子頁面」,如index.php?data =菜單還是如此? 我與第一個使用的代碼是php var isset,?data = menu

if(isset($_GET['palvelut'])){ echo "this is a sample"; }

回答

2

你有正確的想法,但請允許我在小細說了。你需要檢查是否設置了$_GET['data'],通過做isset($_GET['data']),如果設置了,檢查它是否有給定的值,在這種情況下是「菜單」。你可以像這樣做$_GET['data'] == "menu"。全部放在一起,你會得到這樣的:

if (isset($_GET['data']) && $_GET['data'] == "menu") { 
    /* Menu code goes here */ 
} 

如果你想有這個工作多值data你可以做到以下幾點:

if (isset($_GET['data'])) { 
    switch($_GET['data']) { 
    case "Possible_Value_1" : 
     /* Code for this condition appears here */ 
     break; 

    case "Possible_Value_2" : 
     /* Code for this condition appears here */ 
     break; 

    /* etc... */ 

    default : 
     //Just as a precaution... 
     echo "Invalid 'data' value supplied!"; 
     break; 
    } 
} 

希望有所幫助。

+0

+1您輸入的速度很快!比同樣的答案快17秒。我出去了。 – noob 2012-04-06 18:34:40

+0

也許我只是先去這裏?大聲笑感謝+1! – 2012-04-06 18:35:57

+0

好的是:) 那palvelut哪裏有一個錯字..但是這個以及所有其他答案都幫助過了。謝謝:) – Joakim 2012-04-06 18:54:22

1

如果我理解你的問題(我不知道),你已經回答了。

您的網址是:http://www.mydomain.com/index.php?data=something

您的代碼將是:

if (!isset($_GET['data'])) { 
    //do something because no data argument was passed 
} else { 
    switch ($_GET['data']) { 
    case "homepage": 
     header("location: homepage.php"); 
     die; 
     break; 
    case "someotherpage": 
     header("location: someotherpage.php"); 
     die; 
     break; 
    //and so on 
    } 
} 

很明顯,而不要使用頭重定向,你可能只需要()或包含()一個文件,或者完全做一些其他的事情。

+1

這個。然而,對於原始問題作者來說:這個switch語句完全可以完成重定向,但如果您不執行此方法並使用類似的東西,比如將_GET存儲在變量中,然後重定向到該變量,則需要清理輸入以防止注射。 – DaOgre 2012-04-06 18:39:36

+0

你是什麼意思? 當瀏覽http://www.mydomain.com/index.php?data=something 和什麼時候被調用的變量正在設置,當去到另一個頁面的可變數據被清理。我使用了第一個@ spryno724 'if(isset($ _GET ['data'])&& $ _GET ['data'] ==「menu」){ /*菜單代碼在這裏*/ }' 我使用其他如果在我的腳本' – Joakim 2012-04-07 09:27:24

+0

關於注射。 – Joakim 2012-04-07 09:33:29