У меня есть следующая страница PHP:
index.php
if( isset($_POST['location']) ) {
$location = $_POST['location'];
} else {
$location = 'home';
}
require 'header.php';
switch ($location) {
case "home": require 'home.php'; break;
case "about": require 'about.php'; break;
case "products": require 'products.php'; break;
case "budget": require 'budget.php'; break;
case "contact": require 'contact.php'; break;
case "help": require 'help.php'; break;
default: require 'home.php';
}
require 'footer.php';
?>
Внутри HEADER у меня есть:
header.php
<body class="<?php echo $location; ?>">
<div id="navmenu">
<ul id="menu">
<li><a id="page_item_1" href="?location=home">Home</a></li>
<li><a id="page_item_2" href="?location=about">About</a></li>
<li><a id="page_item_3" href="?location=products">Products</a></li>
<li><a id="page_item_4" href="?location=budget">Budget</a></li>
<li><a id="page_item_5" href="?location=contacto">Contact</a></li>
<li><a id="page_item_6" href="?location=help">Help</a></li>
</ul>
</div>
Но ничего не работает... Значение POST изменяется, но класс тела не изменяется. И требуется либо содержание тела (не загружается домой/о/и т.д.).
Что я делаю не так? Благодарю.
Вы передаете материал через GET
, а не POST
.
if( isset($_GET['location']) ) {
$location = $_GET['location'];
} else {
$location = 'home';
}
Для справок в будущем вы можете распечатать переменные GET
и POST
чтобы увидеть, что содержит:
print_r($_GET);
И хотя по этому вопросу $_REQUEST
содержит их оба:
print_r($_REQUEST);
Чтобы отправить данные POST, вы должны отправить их с формой - здесь неактуальны. То, что вы видите в строках запросов URL, - это данные GET
, а не POST
.
Измените свой пост, чтобы получить.. т.е.
if( isset($_GET['location']) ) {
$location = $_GET['location'];
} else {
$location = 'home';
}
Вы используете GET not POST +, почему не используете $ location + "php"? :
if( isset($_GET['location']) ) {
$location = $_GET['location'];
} else {
$location = 'home';
}
require 'header.php';
require $location . '.php';
require 'footer.php';
<body class="<?php echo $location ?>">
открыт для XSS