2012-02-20 188 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 
} 
?>