2013-02-03 26 views
0

舉例來說,我有viewpost.php,它的建立需要,我只需要在那裏改變的div中的內容。只有一個頁面獲取請求PHP的正確方法是什麼?

例如,我將不得不做的viewpost.php?id = 1,2,3等,但我應該做的一切關閉index.php使用index.php?action = viewpost & id = 1?

然後還做if語句,還是我使用這些get請求我的數據庫進行通信怎麼用?

總體來說,我打算無論如何要使用modrewrite,但我無能用正確的方法來設置加載多個網頁關閉一個或幾個PHP文件。

我有一個模板,我只需要使用數據庫中的數據來填充它。 ?

+0

搜索網頁和SO爲「PHP單點進入的」,你會發現很多的這方面的消息。 – markus

回答

-1

最簡單的方法是什麼非常基本的這樣的(不是很安全的,雖然)

$page = $_GET["action"]; 
if($page == null) 
{ 
     $page = "main"; 
} 

if (file_exists("content/$page.php")) 
{ 
     include ("content/$page.php"); 
} 
else 
{ 
     include ("includes/404.php"); 
} 

更好的解決方案是使用像http://www.smarty.net/處理模板和加載內容。稍微複雜一些,但如果你在非常簡單的網站之外做任何事情,最有可能值得額外的努力。

+1

直到有人通過'../../../../ etc/passwd%00',這一切都很好。 –

+0

顯然,它需要一些額外的安全性,但它是一個非常簡單的基礎系統。不過,我應該已經注意到了。 – UberMouse

+0

@ user1973551:不,他們有一個從數據庫中獲取數據的模板。 –

0

的index.php行動= viewpost & ID = 1這個代碼指數:

if(isset($_GET['action']) && isset($_GET['id'])) 
{ 
$id = $_GET['id']; 
if($action == "viewpost") 
{ 
// action is viewpost 
if(!ctype_digit($id)) 
{ 
// id isnt digit 
die(); 
} 
else 
{ 
// viewpost 
include('viewpost.php'); 
} 
} 

viewpost.php可能看起來像:在同行時 只是要確定什麼也沒有發生viewpost.php你可以在URL中是否存在viewpost.php,或者只是做保安這裏(!ctype_digit($ _ GET [ '身份證']))

// since its already been secured with !ctype_digit, we can run queries right away 
$q_findPost = mysqli_query($mysqli, "SELECT * FROM posts WHERE id=$id"); 
$r = mysqli_fetch_assoc($q_findPost); 
// div stuff 
+0

反正參數化您的查詢。 –

+0

這是否是這樣做的一般網站方式? – user1973551

相關問題