我在我网站的每个页面顶部都有一个登录信息,当用户登录时我希望登录表单消失,我该如何在php中执行此操作?我不太确定并且已经在网上看了很多但却找不到怎么做。
这是我的代码
<?php
include "connect.php";
if (isset($_POST['username']) and isset($_POST['password'])){
$username = $_POST['username'];
$password = $_POST['password'];
$query = "SELECT * FROM users WHERE username='$username' and password='$password'";
$result = mysqli_query($con, $query) or die(mysqli_error());
$count = mysqli_num_rows($result);
if ($count == 1){
$_SESSION['username'] = $username;
}else {
echo "Invalid Login Credentials.";
}
}
?>
<div id = "login_details">
<?php
if (isset($_SESSION['username'])){
$username = $_SESSION['username'];
echo "Hello " . $username . " ". "<a href='logout.php'>Logout</a>";
}
?>
<div id="login">
<form action="index.php" method="post">
<label for="username" class="uname" data-icon="u" >Username:</label>
<input id="username" name="username" required="required" type="text" size="10" placeholder="Username"/>
<label for="password" class="youpasswd" data-icon="p">Password:</label>
<input id="password" name="password" required="required" type="password" size="10" placeholder="Password" />
<input type="submit" value="Login" />
</form>
<p>Not a member? <a href ="register.php">Register</a></p>
</div>
答案 0 :(得分:0)
<div class="login <?if($_SESSION['username'] != ''){echo "hidden";}?>">
/* <our login form here */
</div>
在显示登录字段的div中添加一个类,然后通过css将该类设置为隐藏:
.hidden{display:none;}
因此,当用户进入时,您可以使用登录表单隐藏div。
答案 1 :(得分:0)
将您的登录框的呈现移动到以下的其他内容中:
if (isset($_SESSION['username'])){
然后,如果用户未登录,它将呈现登录框,如果是,则呈现问候语。
所以以下没有成功:
if (isset($_SESSION['username'])){
$username = $_SESSION['username'];
echo "Hello " . $username . " ". "<a href='logout.php'>Logout</a>";
}
else{
//script to render login box e.g.
$login = <<<LOGIN
<form id="login" name="login" method="post" action="#">
<label for="uName">User Name:</label>
<input type="text" name="uName" id="uName" />
<label for="pwd">Password:</label>
<input type="password" name="pwd" id="pwd" />
</form>
LOGIN;
echo $login;
请更新您的问题,以包括您尝试过的内容以及结果。