我正在尝试学习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代码来帮助提供建议?
$logged_in
的变量。然后,您可以根据用户是否像这样登录来启用该表单。使用模板的特殊控制语法:
<?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或其他什么。请注意,可以很容易地调用像logincheck.php?errorcode=0
这样的脚本,并欺骗它以为自己刚刚正确登录。
您应该在PHP代码中执行身份验证。如果登录成功,只需创建一个会话,并在$_SESSION
变量中将其标记为已通过身份验证,然后它将在页面加载中持久存在。
记住,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
}
?>