2012-02-20 187 views
0

我正在嘗試學習PHP,我處於一個非常早期的階段!PHP - 登錄後隱藏用戶信息

我想要做的是隱藏包含登錄窗體,當用戶登錄的div,我已經成功地創建數據庫連接和登錄窗體等,以便允許用戶保持登錄和一個會話保持打開狀態,但不確定下一步是否隱藏。

我知道我需要一個if語句,但不知道要去哪裏!

我不會包括整個代碼的HTML是巨大的,但在這裏我想隱藏的形式:

<form id="login" name="login" action="logincheck.php" method="post"> 
     User Name: 
     <input type="text" name="username"></input> 
     Password: 
     <input type="password" name="password"></input> 
     <input type="submit" name="submit" value="login"></input> 
     <a href="javascript: void(0)" onclick="popup('register.html')" > (Register)</a> 
     <br /><br /><br /> 
    </form> 

不知道ELSO你需要看到什麼,但這裏是在頁面中的PHP:

<?php 
if (isset($_GET['showerror'])) 
$errorcode = $_GET['showerror']; 
else 
$errorcode = 0; 
?> 

這就是標籤在此之前的表格前,我有:

<?php 
if ($errorcode == 1) 
{ 
echo "<h3>Your login has failed. Try again</h3>"; 
} 
?> 

你需要登錄檢查php代碼和數據庫連接php代碼以幫助建議?

+0

爲什麼使用$ _GET? $ _GET變量只在頁面加載完成後傳遞一次,填充表單後。看看使用PHP內置$ _SESSION變量。 [PHP手冊](http://php.net/manual/en/reserved.variables.session.php) – PenguinCoder 2012-02-20 22:39:51

回答

4

假設您有一個名爲$logged_in的變量。然後,您可以啓用該窗體,具體取決於用戶是否登錄或不是這樣。使用special control syntax for templates

<?php if (!$logged_in): ?> 
    <form id="login" name="login" action="logincheck.php" method="post"> 
    User Name: 
    <input type="text" name="username"></input> 
    Password: 
    <input type="password" name="password"></input> 
    <input type="submit" name="submit" value="login"></input> 
    <a href="javascript: void(0)" onclick="popup('register.html')" > (Register)</a> 
    <br /><br /><br /> 
    </form> 
<?php endif; ?> 

至於你的PHP代碼,我不知道是$_GET['showerror']的含義是什麼,但在我看來,像你以某種方式執行JavaScript中的身份驗證,然後在重定向到您的PHP什麼的。請注意,人們可以很容易地調用你的腳本,如,並欺騙它認爲只是正確登錄。

您應該在您的PHP代碼中執行身份驗證。如果登錄成功,只需create a session並將其標記爲$_SESSION變量中的身份驗證,則它將在頁面加載時保持不變。

+0

非常感謝你,這真是太棒了,只是現在想實現... – Phil 2012-02-20 23:18:19

1

請記住,PHP基本上運行您的腳本,然後輸出任何結果。 (這比這更復雜一點,但這是另一天的話題)。

因此,如果您將PHP封裝在if塊中,如下所示,它只會在適當時顯示。

<? 
if(!$loggedInVariable)//use whatever logic you want here, 
//the key is that this should return false if you're logged in 
{ 
?> 
<form id="login" name="login" action="logincheck.php" method="post"> 
    User Name: 
    <input type="text" name="username"></input> 
    Password: 
    <input type="password" name="password"></input> 
    <input type="submit" name="submit" value="login"></input> 
    <a href="javascript: void(0)" onclick="popup('register.html')" > (Register)</a> 
    <br /><br /><br /> 
</form> 
<?php 
} 
?>