会话不工作html

时间:2015-09-16 15:07:53

标签: php html session

我很困惑。我试图仅在用户登录时才显示这些链接。

但有些奇怪的事情正在发生。

这是我在index.php中的代码......

// at the beginning of the page i have
session_start();
....
....
 <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
            <ul class="nav navbar-nav navbar-right">


                 <li>
                    <a class="page-scroll" href="#about"> <?php if(!isset($_SESSION['user'])){echo 'Profile';?></a>
                </li>

                <li>
                    <a class="page-scroll" href="#services"><?php if(isset($_SESSION['user'])) echo 'Post Links';?></a>
                </li>
                <li>
                    <a class="page-scroll" href="#portfolio"><?php if(isset($_SESSION['user'])) echo 'My Views';?></a>
                </li>
                <li>
                    <a class="page-scroll" href="#contact"><?php if(isset($_SESSION['user'])) echo 'Logout';?></a>
                </li>

            </ul>
        </div>

它不起作用。然后我做了一个虚拟的.php来测试我的会话是否有效。

    <?php session_start();?>
<!DOCTYPE html>
<html>

<head>
</head>

<body>
<?php if(isset($_SESSION['user'])) echo "Session is up and runnig";?>
</body>
</html>
//I get Session is up and runnig

它有效。所以我很困惑。我做错了什么?

1 个答案:

答案 0 :(得分:0)

中有一个未闭合的大括号
<?php if(!isset($_SESSION['user'])){echo 'Profile';?>
                                   ^               ^???

并且错误报告会抛出一个解析错误(文件结尾),类似于:

  

解析错误:语法错误,第X行中意外的文件结尾

习惯使用适当的支撑技术。

if(condition) {...}

如果不这样做,以后在使用复杂编码时可能会产生不利影响。

error reporting添加到文件的顶部,这有助于查找错误。

<?php 
error_reporting(E_ALL);
ini_set('display_errors', 1);

// rest of your code

旁注:只应在暂存时进行显示错误,而不是生产。

更不用说我的 Spidey sense 对使用.html而不是.php

的刺激感到刺痛

然而你的问题是“这是我在index.php中的代码...”,但你在评论中说你的文件是.html。除非您指示Apache将.html文件视为PHP,否则不会将其解析为PHP(默认情况下)。

另外,您可能会因使用三元运算符而受益。