2017-06-23 101 views
0

我試圖創建一個沒有MySQL的簡單登錄系統,這樣我的客戶端就可以登錄並定向到一個有信息的頁面顯示任何文件鏈接和任何會議。當用戶輸入密碼時,將用戶重定向到一個頁面

我有這樣的:

//If the user is validated and every thing is alright, then grant the user access to the secured account page 
       //otherwise, display error message to the user 
      if ($vpb_error == '') 
      { 
       if(isset($_SESSION['validfullname']) && isset($_SESSION['validusername']) && isset($_SESSION['validemail']) && isset($_SESSION['validpassword'])) 
       { 
        echo '<font style="font-size:0px;">completed</font>'; 
       } 
       else 
       { 
        echo '<div class="info">Sorry, it seems your information are incorrect and as a result, we are unable to create the required sessions to log you into your account. Please enter your valid account information to proceed. Thanks.</div>'; 
       } 

      } 
      else 
      { 
       echo $vpb_error; 
      } 
      fclose($vpb_databases); 
     } 
    } 
    else 
    { 
     echo '<div class="info">Sorry, we could not get your valid username and password to process your login. Please try again or contact this website admin to report this error message if the problem persist. Thanks.</div>'; 
    } 
} 
//*********************************************************The login process ends here********************************************************** 

我怎樣才能讓這個如果一切正常,它就會根據它們的用戶名,也就是說,如果他們的用戶名是詹姆斯,他們會重定向到一個頁面被髮送到james.php。

乾杯 劉易斯

回答

1

我猜測,如果語句是代碼的「成功」分支下面。

https://stackoverflow.com/a/768472/296555

<?php 
if(isset($_SESSION['validfullname']) && isset($_SESSION['validusername']) && isset($_SESSION['validemail']) && isset($_SESSION['validpassword'])) 
{ 
    header('Location: '.$_SESSION['validusername'] . '.php'); 
} 

編輯

你真的應該看看清理你的代碼;它很混亂,看起來過於複雜。您將HTML和PHP混合在一起,雖然不是一個表演阻止者,但通常會被忽視。這就是簡單/易用的框架。即使你不使用它們,你也應該花一些時間閱讀它們,因爲它們可以做很多事情,你會在一週內學到更多的東西,而不是一輩子的摸索。通過它。繼續...回到你多年前寫的代碼總是很有趣,並且想'人,我曾經吸過!'。

Ex。

<?php 
// This looks like no error but then... 
if ($vpb_error == '') 
{ 
    if(isset($_SESSION['validfullname']) && isset($_SESSION['validusername']) && isset($_SESSION['validemail']) && isset($_SESSION['validpassword'])) 
    { 
     // Mixing HTML directly in a script file 
     echo '<font style="font-size:0px;">completed</font>'; 
    } 
    // there is an error here. 
    else 
    { 
     echo '<div class="info">Sorry, it seems your information are incorrect and as a result, we are unable to create the required sessions to log you into your account. Please enter your valid account information to proceed. Thanks.</div>'; 
    } 
} 
+0

是的!非常感謝。 –

0

當用戶驗證您可以使用php header()函數。 ('Location:http://www.example.com/'。$ _ SESSION ['username']。'。php');

+0

謝謝,所以它只是'header('Location:'。$ _ SESSION ['validusername']。'.php'); ' –

+0

$ _SESSION ['validusername']如果變量名包含所需的用戶名,那麼變量名聽起來像是一個布爾值(true/false),然後是。正如旁註:一些較舊的瀏覽器需要一個絕對URI而不僅僅是文件名。 –

0

我不認爲你會想爲每個用戶單獨的文件。通常情況下,我會做的是,一旦用戶被證明已被授權,您將其重定向到授權頁面,然後該授權頁面將呈現您的Web應用程序的應用程序數據。

此頁面基本上對每個人都是一樣的,您可以使用與該用戶關聯的數據填充該頁面。我想你會有一個links表和一個meetings表,它會將user_id關聯到會議/鏈接。您可以使用模板引擎,或者使用PHP編寫自己的模板引擎。根據您的應用程序開始深入的方式,您可能希望看到模板引擎來呈現HTML。

+0

這可能是一個更簡單的方法,謝謝你的建議! –

+0

否則,你必須爲每個用戶預先批量處理文件,並佔用大量內存/存儲空間,這不是擁有一個多層web應用程序的要點! –

相關問題