2012-07-11 71 views
1

我是PHP新手,對於如何快速生成頁面感到好奇?用PHP動態生成頁面

我有一個用戶表,我從我的數據庫中拉出並顯示在我的主頁上,我知道我可以將他們的用戶ID作爲POST變量傳遞給'mysite.com/profilepage.php',然後該頁面上的一個查詢會提取該ID的所有相關信息,但是說我希望該頁面爲'mysite.com/user-profiles/john-doe.php'?

這是用.htaccess文件完成的嗎?任何幫助是極大的讚賞!

+3

Google for'url rewriting'。你可以把'user-profiles/john-doe.php'的請求變成'profilepage.php?username = john-doe'。 – mellamokb 2012-07-11 19:40:22

+0

^^^不是* mysite.com/profilepage.php?id = 7 *是一個比* mysite.com/user-profiles/john-doe.php *更糟糕的想法*忽略所有的SEO BS – 2012-07-11 19:43:06

+0

謝謝你們,剛剛好奇心,如果我傳遞了用戶ID,我仍然可以使用URL重寫來將ID自動更改爲該用戶的名稱?記住可能有300個用戶? – Liam 2012-07-11 19:50:09

回答

1

如果您必須將該頁面稱爲mysite.com/user-profiles/john-doe.php,則可以使用URL重寫作爲評論中提到的mellamokb來將URL更改爲該URL。

但就PHP而言,要做到這一點的方法是創建一個PHP頁面(我要建議user-profiles.php),然後通過用戶名到它要麼GETPOST。假設你只是在閱讀而且所涉及的信息是公開的,那麼GET看起來很好,在這裏更容易解釋。

您可以通過瀏覽器指向user-profiles.php?username=John-Doe和包括像這樣的代碼user-profiles.php訪問相關頁面(「飛」由PHP生成):

if (isset($_GET['username'])) 
{ 
    $username = $_GET['username']; 
    // you now know the passed username 
} 
else 
{ 
    // some kind of error handling for when there is no username 
} 

現在你知道你有內相關用戶名登錄PHP文件,並可以使用它來創建頁面,只要你想。如果您願意,您也可以使用URL重寫將user-profile.php?username=John-Doe更改爲user-profiles/John-Doe

警告:不要使用$_GET如果有問題的網頁要麼會被修改數據庫中的任何方式,或者如果它要越來越從數據庫中的私人信息。它不以任何方式安全。請在創建執行這些任務的頁面之前閱讀PHP安全性。

+0

Ahhh謝謝@DragoonWraith,出於好奇,如果我傳遞了用戶ID,我仍然可以使用URL重寫將ID更改爲該用戶的名稱自動?記住可能有300個用戶? – Liam 2012-07-11 19:49:07

+0

用戶數量不應該關係。我不確定你的意思是「自動將ID更改爲該用戶的名稱」。除非你的意思是「John-Doe」根本就不是身份證,但ID是一個數字......我不確定,但我確信它可以完成。 – KRyan 2012-07-11 19:51:49

1

如果你是PHP的新手,並沒有看過任何框架,看看agiletoolkit。它在jquery和php之間進行了一些整潔的整合,這會給你的頁面帶來不錯的外觀和感覺。它還鼓勵您使用ModelViewController(MVC)將代碼中用於數據庫訪問和功能的部分與純粹用於網頁佈局的部分分開。

上面提到的URL重寫選項是相同的,但是當用戶登錄時,您可以從$ this-> api-> auth('xxx')訪問用戶信息,其中xxx是用戶表。

該框架需要一點點學習,但PHP也是如此,很容易陷入非常不好的習慣,編寫PHP代碼,這意味着當網站變得更大時,您會發現維護代碼變得更加困難。