2016-09-18 55 views
0

我正在爲我的大學建立一個網站,讓學生,工作人員和祕書可以登錄。這些人的每個類別將轉到名爲index.html的頁面,在那裏他們將被提供一個帶有用戶名和密碼字段的表單。現在每個類別都有一個特定的用戶名模式;例如,學生將他們的ID號碼作爲他們的用戶名,工作人員將他們的姓名作爲用戶名,祕書將他們的部門作爲他們的用戶名。當他們輸入登錄憑證並提交時,他們將被重定向到他們的特定頁面。我已經創建了3頁:student.html,staff.htmlsecretary.html。我想將每個這些重定向到它們各自的頁面。例如,如果有人是學生,那麼他/她將被重定向到student.html等等。當然,我必須先檢查用戶名,然後才能知道客戶屬於哪個類別,但我不知道其他部分 - 根據條件指導他們到特定頁面的部分。如何根據前一頁的條件將客戶指向不同的頁面?

+0

我會建議,如果你需要3頁修改。相反,我會有一個包含基於類別的其他組件的頁面。假設你有菜單,正文和頁腳。有student_menu,staff_menu和secretary_menu。身體也一樣。我會假設他們分享頁腳。登錄後。重定向到home.php,其中包括基於類別的菜單和正文。無需在多個頁面中複製數據。如果你這樣做,一定要檢查一下,如果有人查看staff.html實際上是一個工作人員,而不是一個玩網址的學生。 –

回答

0

當有人登錄時,你已經知道他屬於哪個類別了嗎?
因此,您應該將他重定向到該類別頁面。例如:

$redirect_to = $category . ".html"`; // decide which page i.e: 'staff.html' 
header('Location: ' . $redirect_to); // redirect him to that page 

查看php header documentation瞭解更多信息。

0

如果您可以添加前綴到ids將更容易創建重定向邏輯。

驗證用戶會話,並使用header重定向e.g後:

<?php 
    // you logic auth here... 

    /* this example assumes that the pages to be redirected are in the same 
     directory and defines three ids fictitious ($id) e.g: 

     students id: student-1231vjhj32v123h123gh 

     staffs  id: staff-chuck-norris 

     secretaries id: secretary-office 

    */ 

    if(preg_match('/student/i', $id)){ 
     //redirect 
     header('Location: student.html'); 
    } 

    if(preg_match('/staff/i', $id)){ 
     //redirect 
     header('Location: staff.html'); 
    } 

    if(preg_match('/secretary/i', $id)){ 
     //redirect 
     header('Location: secretary.html'); 
    } 
相關問題