Загрузка главной страницы с одной ошибкой,
Примечание. Неопределенный индекс: CONTACT в /Applications/XAMPP/xamppfiles/htdocs/lpnew/index.php в строке 5
Ни одна из ссылок не активна и не переключает контент.
Главная страница:
<?php $pg = 'index'; ?>
<?php include('includes/header.php'); ?>
<?php
$pg = $_GET[$pg];
if ($pg == "services") {
include("services.php");
} elseif($pg == "employees") {
include("employees.php");
} elseif($pg == "contact") {
include("contact.php");
} else {
include("home.php");
};
?>
<?php include('includes/footer.php'); ?>
Панель навигации, которая находится в header.php
:
<?php
$pages = array(
"index" => "HOME",
"services" => "SERVICES",
"employees" => "EMPLOYEES",
"contact" => "CONTACT"
);
$pg = (isset($_GET['pg'])) ? $_GET['pg'] : "";
foreach ($pages as $url => $pg) {
echo '<li ';
if ($pg == $url) {
echo '<li><a class=active href="index.php?p='
. htmlspecialchars(urlencode($url)). '">'
. htmlspecialchars($pg) . '</a></li>';
} else {
echo '<li><a href="index.php?p=' . $url . '">' . $pg . '</a></li>';
}
}
?>
Вот ваша проблема:
$pg = (isset($_GET['pg'])) ? $_GET['pg'] : "";
foreach ($pages as $url => $pg) {
Вы переопределяете $ pg, чтобы он разрешал последний индекс $ pages. Эта строка пытается прочитать $_GET['CONTACT']
который не определен:
$pg = $_GET[$pg];
if ($pg == "services") {
include("services.php");
} elseif($pg == "employees") {
include("employees.php");
} elseif($pg == "contact") {
include("contact.php");
} else {
include("home.php");
};
Как уже отмечал Сверри, все, что вам нужно сделать, это изменить часть значения вашего цикла:
foreach ($pages as $url => $val) {
echo '<li ';
if ($val == $url) {
echo '<li><a class=active href="index.php?p='
. htmlspecialchars(urlencode($url)). '">'
. htmlspecialchars($val) . '</a></li>';
} else {
echo '<li><a href="index.php?p=' . $url . '">' . $val . '</a></li>';
}
}
Именно из-за этой строки:
<?php include('includes/header.php'); ?>
В нем вы перебираете массив $pages
используя $pg
в качестве переменной, которая содержит значение:
foreach ($pages as $url => $pg) {
// ...
}
Это переопределяет исходное значение $pg
, как определено в вашем индексном файле, с последним значением массива (в данном случае 'CONTACT'
).
Чтобы исправить это, вы можете просто изменить имя переменной в цикле, например:
foreach ($pages as $url => $someOtherName) {
// ...
}