http://test.ru/index.php/index.php/index.php?id=page1
вместо указанной мною в коде http://test.ru/index.php/?id=page1
Подскажите, где не так? Архив вложил, вот его главный файл и файл меню.
index.php
<?php include 'menu.php';?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Основы блочной верстки (Div верстки)</title>
<link rel="stylesheet" type="text/css" href="/style.css" />
</head>
<body>
<div id="wrapper">
<div id="header"><span style="font-size:34px;">Сайт</span></div>
<div id="left">
<h2 style="border-bottom:1px solid black;">Menu</h2>
<? getMenu($menu);?>
</div>
<div id="right"><h2 style="border-bottom:1px solid black;">Menu</h2>
<? getMenu($menu);?>
</div>
<div id="kontent">
<?php
$id = (isset($_GET['$id']))?$_GET['$id']:include 'home.php';
switch($id){
case 'page1': include 'page1.php'; break;
case 'page2': include 'page2.php'; break;
case 'page3': include 'page3.php'; break;
}
?>
</div>
<div id="footer">Copyright © Филип Киркоров <? echo date('Y'); ?></div>
</div>
</body>
</html>
menu.php
<?php
$menu = array(
'Page1' => 'index.php?id=page1',
'Page2' => 'index.php?id=page2',
'Page3' => 'index.php?id=page3'
);
function getMenu($masiv){
echo '<ul>';
foreach($masiv as $href=>$value){
echo "<li><a href=\"$value\">$href</a></li>";
}
echo '</ul>';
}
?>
Спустя 7 минут, 59 секунд (6.09.2011 - 18:32) Winston написал(а):
А если menu.php так переписать
Свернутый текст
<?php
$menu = array(
'Page1' => '?id=page1',
'Page2' => '?id=page2',
'Page3' => '?id=page3'
);
function getMenu($masiv){
echo '<ul>';
foreach($masiv as $href=>$value){
echo "<li><a href=\"http://" . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'] . "$value\">$href</a></li>";
}
echo '</ul>';
}
?>
Спустя 3 минуты, 33 секунды (6.09.2011 - 18:36) Winston написал(а):
Цитата (romantik2011 @ 6.09.2011 - 18:24) |
$id = (isset($_GET['$id']))?$_GET['$id']:include 'home.php'; |
Правильно будет так
$id = (isset($_GET['id']))?$_GET['id']:include 'home.php';
Спустя 20 минут, 29 секунд (6.09.2011 - 18:56) romantik2011 написал(а):
Thank you.
Скажите, а вот это : $_SERVER['HTTP_HOST'] Это чтоб не писать в массиве index.php, а написать ?id=page1, а не полностью index.php?id=page1 ???
Скажите, а вот это : $_SERVER['HTTP_HOST'] Это чтоб не писать в массиве index.php, а написать ?id=page1, а не полностью index.php?id=page1 ???
Спустя 3 минуты, 15 секунд (6.09.2011 - 19:00) Winston написал(а):
Цитата (romantik2011 @ 6.09.2011 - 18:56) |
Скажите, а вот это : $_SERVER['HTTP_HOST'] |
Нет. В этом элементе хранится имя хоста. Я думаю здесь все прояснится. А PHP_SELF это, чтобы не писать index.php.
Спустя 1 минута, 45 секунд Winston написал(а):
Цитата (Winston @ 6.09.2011 - 18:32) |
<a href=\"http://" . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'] . "$value\">$href</a> |
Я прописал абсолютные ссылки.
То есть у тебя на сервере уже будут сформированы абс. ссылки, а не браузер будет их подставлять.
Спустя 13 минут, 28 секунд (6.09.2011 - 19:13) romantik2011 написал(а):
Кстати без PHP_SELF сработало тоже.
function getMenu($masiv){
echo '<ul>';
foreach($masiv as $href=>$value){
echo "<li><a href=\"http://" . $_SERVER['HTTP_HOST'] . "$value\">$href</a></li>";
}
echo '</ul>';
}
Спустя 3 минуты, 23 секунды (6.09.2011 - 19:16) Winston написал(а):
Цитата (romantik2011 @ 6.09.2011 - 19:13) |
Кстати без PHP_SELF сработало тоже |
Конечно сработает Если это индексный файл, а если нет, то придется его прописывать или использовать PHP_SELF
Спустя 37 минут, 54 секунды (6.09.2011 - 19:54) Winston написал(а):
И вообще, вывод в ф-и это плохо.
Лучше так перепиши
И вывод меню
Лучше так перепиши
function getMenu($masiv)
{
$html = '<ul>';
foreach($masiv AS $href => $value)
$html .= "<li><a href=\"$value\">$href</a></li>";
return $html .= '</ul>';
}
И вывод меню
<?php echo getMenu($menu);?>