【问题标题】:Multiple undefined index showing in index.phpindex.php 中显示多个未定义的索引
【发布时间】:2014-03-17 07:11:14
【问题描述】:

我正在学习使用 php 制作动态网页。我通过教程创建了我的网站。它工作得很好,除了以下几行不断出现在我的 index.php 页面上:

注意:未定义索引:第 6 行 C:\xampp\htdocs\janewoo_new\index.php 中的页面 注意:未定义索引:第 8 行 C:\xampp\htdocs\janewoo_new\index.php 中的页面 注意:未定义索引:第 10 行 C:\xampp\htdocs\janewoo_new\index.php 中的页面 ...

这是我在 index.php 上的代码:

<?php

include("includes/header.html");
include("includes/navbar.html");

if($_GET['page']=="traditional_teampage.html"){
include("includes/traditional_teampage.html" );
}else if($_GET['page']=="traditional_mediapage.html"){
include("includes/traditional_mediapage.html");
}else if($_GET['page']=="traditional_faqpage.html"){
include("includes/traditional_faqpage.html");
}else if($_GET['page']=="traditional_casepage.html"){
include("includes/traditional_casepage.html");
}else if(isset($_GET['page'])=="consumer-proposal.html"){
include("includes/consumer-proposal.html");
}else if($_GET['page']=="bankruptcy.html"){
include("includes/bankruptcy.html");
}else if($_GET['page']=="community.html"){
include("includes/community.html");
}else if($_GET['page']=="traditional_contactpage.html"){
include("includes/traditional_contactpage.html");
}else{
include("includes/traditional_home.html");
}

include("includes/footer.html");

?>

我按照其他人的答案中的描述放置了 isset() ,但是按钮都转到了同一页面的第一页。我更像是一个设计师而不是一个程序员,我正在尽我最大的努力学习 php。希望可以有人帮帮我。非常感谢。

【问题讨论】:

  • 我的眼睛,在流血!请缩进你的代码;(
  • 您需要检查isset($_GET['page']) 无处不在,而不仅仅是一次。还可以考虑使用 switch 语句而不是许多 else ifs。
  • Use this instead学习。
  • }else if(isset($_GET['page'])=="consumer-proposal.html"){ 注意此行不正确

标签: php


【解决方案1】:

要更正警告更改:

if($_GET['page']=="traditional_teampage.html"){

变成:

if(isset($_GET['page']) and $_GET['page']=="traditional_teampage.html"){

还要考虑这种结构的 switch/case 语句

http://www.php.net/manual/en/control-structures.switch.php

switch((isset($_GET['page'])) ? $_GET['page'] : null)
{
  case 'traditional_teampage.html':
  case 'traditional_mediapage.html':
  case 'traditional_faqpage.html':
  case 'traditional_casepage.html':
  case 'consumer-proposal.html':
  case 'bankruptcy.html':
  case 'community.html':
  case 'traditional_contactpage.html':
    include('includes/' . $_GET['page']);
    break;
  default:
    include("includes/traditional_home.html");
    break;
}

甚至是一个简单的in_array()“白名单”供您包含。

if(isset($_GET['page']) and in_array($_GET['page'],array(
  'traditional_teampage.html',
  'traditional_teampage.html',
  'traditional_mediapage.html',
  'traditional_faqpage.html',
  'traditional_casepage.html',
  'consumer-proposal.html',
  'bankruptcy.html',
  'community.html',
  'traditional_contactpage.html'
)))
{
  include('includes/' . $_GET['page']);
}
else
{
  include("includes/traditional_home.html");
}

【讨论】:

  • 感谢 Scuzzy 的帮助。我将您的代码放入文件中,但出现错误:Parse error: syntax error, unexpected '{' in C:\xampp\htdocs\janewoo_new\index.php 在第 17 行。第 17 行是 { include('includes/' . $_GET['page']); } 别的。注意:我使用了您的数组代码。
  • 抱歉没有足够的右括号,再试一次,我把))改成了)))
  • Scuzzy,你太棒了。我使用了你的两个代码,现在都可以正常工作。也感谢您的链接。我会更多地研究它们。我是 php 新手,但我非常喜欢它。
  • 好,请接受这个回答你的问题(绿色勾号) :)
猜你喜欢
  • 2022-10-13
  • 2021-03-30
  • 1970-01-01
  • 2020-07-14
  • 1970-01-01
  • 2015-02-19
  • 1970-01-01
  • 1970-01-01
  • 2012-02-08
相关资源
最近更新 更多