簡體   English   中英

什么是只有一個頁面與get請求php的正確方法是什么?

[英]What is the proper way of only having one page with get requests php?

例如,我有viewpost.php,並根據需要進行設置,我只需要在其中更改div中的內容。

例如,我將不得不執行viewpost.php?id = 1,2,3等。但是我應該使用index.php?action = viewpost&id = 1來做index.php的一切嗎?

然后,我是否使用if語句,還是使用這些get請求與數據庫通信?

總的來說,無論如何我都打算使用modrewrite,但是我對設置從一個或幾個php文件加載多個頁面的正確方法一無所知。

我有一個模板,我只需要使用數據庫數據填充它即可。

index.php?action = 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時不會發生任何不良情況,如果viewpost.php存在,您可以在URL中看到它,或者只是在此處進行安全性(!ctype_digit($ _ GET ['id'] ))

  // 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

最簡單的方法是這樣的基本操作(雖然不是很安全)

$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/之類的東西來處理模板和內容加載。 稍微復雜一點,但是如果您要做的事情超出非常簡單的網站,則很可能值得付出額外的努力。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM