用户登录后不显示注销按钮



用户登录后,他们应该能够看到注销,但问题是他们只能看到登录按钮。注销按钮丢失。我正在使用向下滑动面板。我知道我的 html 中缺少一些条件子句(?),但我只知道如何以及在哪里编写它。请帮助我。

html/index.php

    <div id="toppanel">
    <div id="panel">
        <div class="content clearfix">
            <div class="left">
                <!-- Login Form -->
                <form class="clearfix" action="validate2.php" method="post">
                    <h1>Member Login</h1>
                    <label class="grey" for="log">Email:</label>
                    <input class="field" type="text" name="email" id="log" value="" size="23" />
                    <label class="grey" for="pwd">Password:</label>
                    <input class="field" type="password" name="password" id="pwd" size="23" placeholder="********" />
                    <label><input name="rememberme" id="rememberme" type="checkbox" checked="checked" value="forever" /> &nbsp;Remember me</label>
                    <div class="clear"></div>
                    <input type="submit" name="submit" value="Login" class="bt_login" />
                    <a class="lost-pwd" href="#">Lost your password?</a>
                </form>
            </div>
            <div class="left">          
                <!-- Register Form -->
                <form action="#" method="post">
                    <h1>Not a member yet? Sign Up!</h1>             
                    <label class="grey" for="email">Email:</label>
                        <input class="field" type="text" name="email" id="signup" value="" size="23" />
                    <label class="grey" for="password">Password:</label>
                        <input class="field" type="text" name="password" id="email" size="23" placeholder="********" />
                    <label class="grey" for="email">Confirm Password:</label>
                        <input class="field" type="text" name="password" id="email" size="23" placeholder="********" />
            </div>
            <div class="left right">
                    <label class="grey" for="email">Contact No</label>
                        <input class="field" type="text" name="email" id="signup" value="" size="23" />
                    <label class="grey" for="email">Campus</label>
                    <br>
                        <input type="radio" name="campus" /><?php if (isset($campus) && $campus=="Jerudong")?><value="Jerudong">Jerudong
                        <input type="radio" name="campus" /><?php if (isset($campus) && $campus=="Gadong") ?><value="Gadong">Gadong
                    <label class="grey" for="email">Class</label>
                        <input class="field" type="text" name="email" id="signup" value="" size="23" />
                    <label class="grey" for="email">Intake</label>
                        <input class="field" type="text" name="email" id="signup" value="" size="23" />
                    <input type="submit" name="submit" value="Register" class="bt_register" />
                </form>
            </div>
        </div> <!-- /login -->
    </div>
    <!-- The tab on top --> 
    <div class="tab">
        <ul class="login">
            <li class="left">&nbsp;</li>
            <li>Hello!</li>
            <li class="sep">|</li>
            <li id="toggle">
                <a id="open" class="open" href="#">Log In | Register</a>
                <a id="close" style="display: none;" class="close" href="#">Close Panel</a>         
            </li>
            <li class="right">&nbsp;</li>
        </ul> 
    </div> <!-- / top -->
<!-- The tab on top -->
    <div class="tab">
        <ul class="login">
            <li class="left"> </li>
            <!-- Logout -->
            <li>Hello, <?php echo $_SESSION['email'] ?></li>
            <li><a href="logout.php">Log Out</a></li>
            <li class="sep">|</li>
            <li id="toggle">
            <a id="open" class="open" href="#" rel="nofollow">Show Dashboard</a>
            <a id="close" style="display: none;" class="close" href="#" rel="nofollow">Close Panel</a>
            </li>
            <li class="right"> </li>
        </ul>
    </div> <!-- / top -->

验证2.php

<?php 
include 'connection.php';
if (isset($_POST["login"])){
//get data from login form
$email = mysql_real_escape_string($_POST["email"]);
$password = mysql_real_escape_string($_POST["password"]);
//select all data by using email and password entered
$customers = mysql_query("select * from customer where CustomerEmail='".$email."' and CustomerPassword='".$password."'");
$customer = mysql_num_rows($customers);
$managers = mysql_query("select * from manager where ManagerEmail='".$email."' and ManagerPassword='".$password."'");
$manager = mysql_num_rows($managers);
$staffs = mysql_query("select * from staff where StaffEmail='".$email."' and StaffPassword='".$password."'");
$staff = mysql_num_rows($staffs);
    //if customer is true
    if($customer== 1){
        $row = mysql_fetch_assoc($customers);
        $id= $row['CustomerID'];
        $email = $row['CustomerEmail'];
        $name = $row['CustomerName'];
        //start session
        session_start();
        //create session
        $_SESSION['CustomerID'] = $id;
        $_SESSION['CustomerEmail'] = $email;
        $_SESSION['CustomerName'] = $name;
        //redirect page to index.php    
        header("Location: index.php");
        }
    //if manager is true
    else if($manager == 1){
        $row = mysql_fetch_assoc($managers);
        $id = $row['ManagerID'];
        $email = $row['ManagerEmail'];
        $name = $row['ManagerName'];
        //start session
        session_start();
        //create session
        $id = $row['ManagerID'] = $id;
        $_SESSION['ManagerEmail'] = $email;
        $_SESSION['ManagerName'] = $name;
        //redirect page to managerCP.php
        header("Location: managercp.php");
        }
    //if staff is true
    else if($staff == 1){
        $row = mysql_fetch_assoc($staff);
        $id = $row['StaffID'];
        $email = $row['StaffEmail'];
        $name = $row['StaffName'];
        //start session
        session_start();
        //create session
        $id = $row['StaffID'] = $id;
        $_SESSION['StaffEmail'] = $email;
        $_SESSION['StaffName'] = $name;
        //redirect page to staffCP.php
        header("Location: staffcp.php");
        }
    //if all condition is false 
    else    {
//alert will be appeared
header("Location: index.php?login=Wrong email or password");    
}
}
?>

</div>

所以我编辑了,我得到了一个错误,说出乎意料的"其他"。

    <li class="left"> </li>
    <?php if(isset($_GET['login'])) {?>
    <!-- Logout -->
    <li>Hello, <?php echo $_SESSION['email'] ?></li>
    <li><a href="logout.php">Log Out</a></li>
    <li class="sep">|</li>
    <?php } ?>
    <?php else { ?>
    <div class="content clearfix">
            <div class="left">
                <!-- Login Form -->
                <form class="clearfix" action="validate2.php" method="post">
                    <h1>Member Login</h1>
                    <label class="grey" for="log">Email:</label>
                    <input class="field" type="text" name="email" id="log" value="" size="23" />
                    <label class="grey" for="pwd">Password:</label>
                    <input class="field" type="password" name="password" id="pwd" size="23" placeholder="********" />
                    <label><input name="rememberme" id="rememberme" type="checkbox" checked="checked" value="forever" /> &nbsp;Remember me</label>
                    <div class="clear"></div>
                    <input type="submit" name="submit" value="Login" class="bt_login" />
                    <a class="lost-pwd" href="#">Lost your password?</a>
                </form>
            </div>
            <div class="left">          
                <!-- Register Form -->
                <form action="#" method="post">
                    <h1>Not a member yet? Sign Up!</h1>             
                    <label class="grey" for="email">Email:</label>
                        <input class="field" type="text" name="email" id="signup" value="" size="23" />
                    <label class="grey" for="password">Password:</label>
                        <input class="field" type="text" name="password" id="email" size="23" placeholder="********" />
                    <label class="grey" for="email">Confirm Password:</label>
                        <input class="field" type="text" name="password" id="email" size="23" placeholder="********" />
            </div>
            <div class="left right">
                    <label class="grey" for="email">Contact No</label>
                        <input class="field" type="text" name="email" id="signup" value="" size="23" />
                    <label class="grey" for="email">Campus</label>
                    <br>
                        <input type="radio" name="campus" /><?php if (isset($campus) && $campus=="Jerudong")?><value="Jerudong">Jerudong
                        <input type="radio" name="campus" /><?php if (isset($campus) && $campus=="Gadong") ?><value="Gadong">Gadong
                    <label class="grey" for="email">Class</label>
                        <input class="field" type="text" name="email" id="signup" value="" size="23" />
                    <label class="grey" for="email">Intake</label>
                        <input class="field" type="text" name="email" id="signup" value="" size="23" />
                    <input type="submit" name="submit" value="Register" class="bt_register" />
                </form>
            </div>
        </div> <!-- /login -->
<?php } ?>

解决方案和批判

我不太明白为什么所有的登录、注册和注销信息都在同一页面上,但是如果你想要这样,你必须添加 PHP 条件来管理设置某些会话材料时显示的内容。

我假设您正在谈论的条件,因为注销内容未显示将围绕此区域:

<li class="left"> </li>
<?php if $_SESSION['logged_in'] {?>
    <!-- Logout -->
    <li>Hello, <?php echo $_SESSION['email'] ?></li>
    <li><a href="logout.php">Log Out</a></li>
    <li class="sep">|</li>
...<?php } ?>
<?php else { ?>
    <!--Things to show when user is not logged in-->
<?php } ?>

请使用 PDO

强烈建议您在启动与数据库的连接时使用 PDO(PHP 数据对象),以确保安全性并防止 SQL 注入。就使用数据库而言,这确实是任何安全PHP应用程序的重要组成部分,它对数据库类型有很好的支持,并且非常容易学习

最新更新