PHP登录后制作隐藏和显示菜单

时间:2017-05-04 12:36:19

标签: php

我希望在登录过后更改我的默认菜单 和 我有像我这样的应用程序的代码

的index.php

<?php session_start(); ?>

<html>
<head></head>
<body>
<ul>
 <?php if($_SESSION['loggedIn'] == '1' ): ?>
<li><a href="../templates/"  title="Home" id="activated">Home</a></li>
<li><a href="catalog.html" title="Catalog" >Catalog</a></li>
<li><a href="signup-for-partners.html" title="Partners">Become Our Partner</a></li>
<li><a href="About-us.html" title="About Us">About Us</a></li>
   <?php else: ?>
   <li><a href="../templates/"  title="" >Home</a></li>
   <li><a href="account.html"  title="" >My Account</a></li>
   <li><a href="catalog.html" title="" >Catalog</a></li>
   <li><a href="logout.php" title="" >logout</a></li>
   <?php endif; ?>
  </ul>

</body> </html>

这是我使用验证码的过程

<?php

session_start();
include 'conection.php';


if($_POST['captcha'] == $_SESSION['captcha']){

    $username = $_POST['UserID'];
    $password =$_POST['Password'];

    $sql = "select * from login where username='".$username."' and password='".$password."'";
    #echo $sql."<br />";
    $query = mysql_query($sql) or die (mysql_error());

    if($query){
        $row = mysql_num_rows($query);

        if($row > 0){
            $_SESSION['loggedIn']='1';
            $_SESSION['UserID']=$username;
            header('Location: ../templates/');
        }
        else {
            header('Location: error.php');
        }
    }
}
else{ 

header('Location: ../templates/');


}
?>

并且它出现错误

  

注意:未定义的索引:登录   第78行的C:\ xampp \ htdocs \ Templates \ index.php

在process.php中定义的loggedIn

为什么它不起作用?

1 个答案:

答案 0 :(得分:0)

你必须测试你的会话是否与isset()一起存在,如果它的价值很高: - )

if(isset($_SESSION['loggedIn']) && $_SESSION['loggedIn'] == '1' ){ ... }

顺便说一句,不推荐使用mysql_ *:你应该使用PDO或Mysqli 看看:Why shouldn't I use mysql_* functions in PHP?

而且,撰写if($var == 1)和撰写if($var)是一回事:1可以是true,&#34; 1&#34;作为string,或1作为int