我很困惑。我试图仅在用户登录时才显示这些链接。
但有些奇怪的事情正在发生。
这是我在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
它有效。所以我很困惑。我做错了什么?
答案 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(默认情况下)。
另外,您可能会因使用三元运算符而受益。