2012-11-25 104 views
0

让我说好和简单:简单的PHP脚本创建错误

为可能大家一样,我是用简单的服务器进行各种东西,如主菜单或侧面菜单等上包括...

这是我的代码示例

<?php $number = 1; include("/var/www/vhosts/MyWebSite.com/httpdocs/trial/includes/header.php");?> 

的$数= 1定义取决于页面级照例的标签的正确选择。

,我包括代码如下:

18 <?php $page[$number] = 'selected';?> 
19 <!--=================== top navigation ==================--> 
20 <nav> 
21 <div id="menu"> 
22 <a href="/Page 1/" class="tab <?php echo $page[1] ?>" title="Page 1">Page 1</a> 
23 <a href="/Page 2/" class="tab <?php echo $page[2] ?>" title="Page 2">Page 2</a> 
24 <a href="/Page 3/" class="tab <?php echo $page[3] ?>" title="Page 3">Page 3</a> 
25 <a href="/Page 4/" class="tab <?php echo $page[4] ?>" title="Page 4">Page 4</a> 
26 <a href="/Page 5/" class="tab <?php echo $page[5] ?>" title="Page 5">Page 5</a> 
27 <a href="/Page 6/" class="tab <?php echo $page[6] ?>" title="Page 6">Page 6</a> 
28 <a href="/Page 3/" class="tab <?php echo $page[7] ?>" title="Page 7">Page 7</a> 
29 </div><!-- end .menu --> 
30 </nav><!-- end .navigation --> 

显然.selected的CSS将改变背景颜色,说明你是那个特定的页面上,所以没有必要解释一下。

现在的问题,我刚才已经检查了正好是相当大的下载我的错误日志,发现了以下错误:

[Sat Nov 24 17:50:50 2012] [error] [client 204.11.33.59] PHP Notice: Undefined offset: 2 in /var/www/vhosts/MyWebSite.com/httpdocs/trial/includes/header.php on line 23 
[Sat Nov 24 17:50:50 2012] [error] [client 204.11.33.59] PHP Notice: Undefined offset: 3 in /var/www/vhosts/MyWebSite.com/httpdocs/trial/includes/header.php on line 24 
[Sat Nov 24 17:50:50 2012] [error] [client 204.11.33.59] PHP Notice: Undefined offset: 4 in /var/www/vhosts/MyWebSite.com/httpdocs/trial/includes/header.php on line 25 
[Sat Nov 24 17:50:50 2012] [error] [client 204.11.33.59] PHP Notice: Undefined offset: 5 in /var/www/vhosts/MyWebSite.com/httpdocs/trial/includes/header.php on line 26 
[Sat Nov 24 17:50:50 2012] [error] [client 204.11.33.59] PHP Notice: Undefined offset: 6 in /var/www/vhosts/MyWebSite.com/httpdocs/trial/includes/header.php on line 27 
[Sat Nov 24 17:50:50 2012] [error] [client 204.11.33.59] PHP Notice: Undefined offset: 7 in /var/www/vhosts/MyWebSite.com/httpdocs/trial/includes/header.php on line 28 

我无法理解的原因吧。国际海事组织如果$号已经预先定义,为什么错误?

请帮我做正确的方式。

回答

1

$page索引没有被定义。你可以改变你的代码是这样的:

echo isset($page[1]) ? $page[1] : "" 
//and so on 
+0

大这解决了问题 – AlexB

+0

感谢您的帮助 – AlexB

+0

没问题,很高兴帮助你。 –

1

您只需设置一个您的数组元素但检查更多。通过这样做:

$a = 3; 
$page[$a] = 'selected'; 

只有一个条目存在与索引3(除非你在其他地方设置,但我假设你没有)。所以这段代码:

<?php echo $page[1]; ?> 

指的是不存在的数组元素,因此是警告。如果$page唯一的目的就是这个从你的代码,然后摆脱它完全。删除

<?php $page[$number] = 'selected';?> 

更换

<?php echo $page[7] ?> 

如果你需要这个数组任何其他原因,更换代码

<?php echo $page[7] ?> 

<?php echo isset($page[7]) ? 'selected' : '' ?> 
+0

谢谢,它向我指出了正确的方向 – AlexB

0

使用此清洁代码的DIV#菜单里面:您的帮助

<?php 
$count = 7; 
for($link = 1; $link <= $count; $link++){ 
    $extraClass = ($link == $number) ? "selected" : "" ; 
    echo "<a href='/Page {$link}/' class='tab {$extraClass}' 
       title='Page {$link}'>Page {$link}</a>"; 
} 
?>