2012-02-11 154 views
0

我試圖做的是創建一個URL,例如:使用下面的代碼使用PHP URL變量/ PHP包括

article.php?00001 

那麼這將包括00001作爲內article.php

if(isset($_GET['00001'])){ 
    include('00001.php'); 
}else if(isset($_GET['00002'])){ 
    include('00002.php'); 
} else { 
    include('noarticle.php'); 
} 
文章

現在,這項工作,並將適用於幾篇文章,如果我只是不斷添加00003 - 00010等,但如果我打算添加更多的文章,是否有一個更好的方式來編碼,而無需手動插入文章編號S'

+1

您確定要使用文章編號而不是搜索引擎友好的標題嗎? – rdlowrey 2012-02-11 03:33:18

回答

0

只是讓它動態! 我會做這樣的事情:你需要知道它是不安全的,包括簡單的基於URL文件

article.php?id=id_of_my_article 

if(isset($_GET['id'])) include($_GET['id'].".php"); 
else include('noarticle.php'); 
+1

當然,您應該使用適當的安全防範措施,例如確保該ID是一個數字,不包含字母或特殊字符。 我建議你使用OWASP提供的淨化php類http://www.owasp.org – 4ng3l0 2012-02-11 03:43:14

+0

從上面的評論加上,這很好地工作,至少使我的工作半自動化!非常感謝!安全選項正在看,現在,謝謝 – 2012-02-11 03:50:34

+0

@NeilMacDonald看到我下面的評論其他答案之一 - 我知道最簡單的方法,讓數字輸入安全:) – Joe 2012-02-11 03:56:21

1

使用數據庫來存儲您的文章。查看http://www.freewebmasterhelp.com/tutorials/phpmysql,瞭解如何在PHP中使用MySQL。

關於您的網址,請使用article.php?id=###,然後使用$_GET['id']來確定正在瀏覽哪篇文章。

通過包括根據用戶提供的數據文件,如果用戶去article.php?article - 它會嘗試加載article.php它試圖加載article.php它試圖...你的想法。

+0

感謝您的提示,數據庫將不需要,因爲文章存儲在WordPress的網站。感謝您指點我正確的方向! – 2012-02-11 03:48:17

+0

@NeilMacDonald如果你正在尋找創建「美麗」的URL,wordpress已經內置了這個功能......並且它使用了一個帶有ID號碼的數據庫來發布帖子,所以你在做什麼似乎有點荒謬。 – rdlowrey 2012-02-11 03:53:17

+0

對不起,我應該更清楚地說明一下自己,我使用wordpress自定義字段輸出一個文章編號,然後我可以使用wordpress codex在網站的其他地方找到它。在朋友的CMS bodge上排序。 – 2012-02-11 03:57:03

0

第一。還有其他更好的方式,就像@Joe和@Angelo Cavallini所寫的那樣。
但是,如果您很清楚後果並決心這麼做,那麼您可以嘗試:
$ id = current($ _GET);
$ id & & $ id = intval($ id); ($ id)' if($ id){
include($ id.'php');
}

+0

我只是'$ id = (int)$ _GET ['id'];如果($ id> 0)...' - 如果有人輸入了「23ab」,它會截斷爲23,如果有人輸入「ab23」,它會變爲0並退出。 – Joe 2012-02-11 03:55:29

+0

是的,代碼假設收到的參數是有效的,如果沒有,爲什麼你會包含一個不存在的文件? – adamsmith 2012-02-11 04:09:54