index.php上的未定义变量

时间:2016-01-09 21:59:49

标签: php apache

我一直在调试一个php网站,该网站在页面标题navsection的顶部实现导航栏,标题为sidenavcat的侧导航栏。在运行时,我的导航部分显示:

Notice: Undefined variable: navsection in 
/Applications/XAMPP/xamppfiles/htdocs/NOALivingWebsite/header.php on line 25
Hospitality 
Notice: Undefined variable: navsection in /Applications/XAMPP/xamppfiles/htdocs/NOALivingWebsite/header.php on line 28
Sustainability 
Notice: Undefined variable: navsection in /Applications/XAMPP/xamppfiles/htdocs/NOALivingWebsite/header.php on line 31
Events 
Notice: Undefined variable: navsection in /Applications/XAMPP/xamppfiles/htdocs/NOALivingWebsite/header.php on line 34
Press 
Notice: Undefined variable: navsection in /Applications/XAMPP/xamppfiles/htdocs/NOALivingWebsite/header.php on line 37
Catalogues 
Notice: Undefined variable: navsection in /Applications/XAMPP/xamppfiles/htdocs/NOALivingWebsite/header.php on line 40
Locations 
Notice: Undefined variable: navsection in /Applications/XAMPP/xamppfiles/htdocs/NOALivingWebsite/header.php on line 43
Shop Online

header.php中的以下对应行如下

<li <?php echo ($navsection == 'hospitality') ? ' class="current"' : ''; ?> >
   <a href="http://localhost/NOALivingWebsite/code/hospitality.php">Hospitality</a>
</li>
<li <?php echo ($navsection == 'sustainability') ? ' class="current"' : ''; ?> >
   <a href="http://localhost/NOALivingWebsite/code/sustainability.php">Sustainability</a>
</li>
<li <?php echo ($navsection == 'events') ? ' class="current"' : ''; ?> >
   <a href="http://localhost/NOALivingWebsite/code/events.php">Events</a>
</li>
<li <?php echo ($navsection == 'press') ? ' class="current"' : ''; ?> >
   <a href="http://localhost/NOALivingWebsite/code/press.php">Press</a>
</li>
<li <?php echo ($navsection == 'catalogue') ? ' class="current"' : ''; ?> >
   <a href="http://localhost/NOALivingWebsite/code/catalogue.php">Catalogues</a>
</li>
<li <?php echo ($navsection == 'retail') ? ' class="current"' : ''; ?> >
   <a href="http://localhost/NOALivingWebsite/code/locations.php">Locations</a>
</li>
<li <?php echo ($navsection == 'register') ? ' class="current"' : ''; ?> >
   <a href="http://localhost/NOALivingWebsite/index.php">Shop Online</a>
</li>

您可以提供的任何建议都将非常感谢。谢谢你的时间

1 个答案:

答案 0 :(得分:0)

错误信息不是直接的。在执行ternary运算符时,未定义变量$navsection。 一种可能的解决方案是将该变量定义为Session变量并按以下方式访问它:

$_SESSION["navsection"]

所以你的代码看起来像那样:

<li <?php echo ($_SESSION["navsection"] == 'register') ? ' class="current"' : ''; ?> >
   <a href="http://localhost/NOALivingWebsite/index.php">Shop Online</a>
</li>

注意:确保在上述检查之前定义了session变量navsection,可能在另一个.php文件中。

您需要在html文件中使用this一个。这应该在你的html文件的顶部使用,如:

<?php
  session_start( );
  $_SESSION["navsection"] = "register"; // Temporary fix.
?>
<html>
.
.
.

这样您就可以访问会话变量了。