Ihor Byra
Дійсний член
Повідомлень: 122
Зареєстрований: 12-5-2003
Місто: Lviv
Нема на форумі
Настрій: )
|
|
Питання до PHP програмістів
Попросили мене зробити один сайт в PHP. А крім цього вони ще захотіли щоб сторінки
відображалися таким способом: http://www.моя.адреса.com/index.php?action=Guestbook
Я ніби все роблю правильно, але тільки коли переходити на іншу сторінку меню не
міняється, а просто добавляється під меню сторінки index.php.
Якщо хтось з вас би міг - то напишіть мені правильний PHP код.
Тільки це не повинно бути в класах, бо там занадто багато інформації, щоб на кожну
робити свій клас.
|
|
marco
Академік
Повідомлень: 752
Зареєстрований: 3-2-2003
Місто: Львів, центр
Нема на форумі
Настрій: стабільний
|
|
Наскільки я зрозумів питання, то в файлі index.php треба зробити обробку змінної action і
в саму сторінку включати відповідний контент.
|
|
fish
Почесний Академік
Повідомлень: 1592
Зареєстрований: 28-5-2003
Місто: Запоріжжя
Нема на форумі
Настрій: присутній
|
|
не дуже добре зрозуміла запитання... Якщо тобі треба десь отакого типу, як тут http://www.zsu.zp.ua/99/sh/main.php?item=news то, може, зумію допомогти.
карнавал мусить тривати далі, інакше йому настане кінець
|
|
marco
Академік
Повідомлень: 752
Зареєстрований: 3-2-2003
Місто: Львів, центр
Нема на форумі
Настрій: стабільний
|
|
Цитата: | Першим відправив користувач Iggorini
Попросили мене зробити один сайт в PHP. А крім цього вони ще захотіли щоб сторінки
відображалися таким способом: http://www.моя.адреса.com/index.php?action=Guestbook
Якщо хтось з вас би міг - то напишіть мені правильний PHP код.
|
OK. Код найпростішого варіанту:
на початку файлу index.php
<?php
// Define content
switch ($action) {
case 'about': $content="./about.php"; $title="About us"; break;
case 'services': $content="./services.php"; $title="Our servicesї"; break;
case 'guestbook': $content="./guestbook.php"; $title="Sign our Guestbook"; break;
case 'contact': $content="./contact.php"; $title="Contact"; break;
default: $content="./main.php"; $title="www.моя.адреса.com"; break;
?>
в тому місці дефолтного темплейту сайту, де має бути змінний контент вставляємо
його через include
<!--begin content column-->
<?php include $content; ?>
<!--end content column-->
Або зовсім простий, але менш коректний і гнучкий варіант:
<?php
if (isset($action)) {
$content=$action.'.php' }
else {
$content='main.php';}
include $content;
?>
А взагалі-то, як вже згадувалось тут на форумі урл index.php?action=Guestbook не є гарним з огляду на індексацію сайту пошуковими машинами.
Значно краще робити це в такий спосіб
http://www.моя.адреса.com/guestbook
http://www.моя.адреса.com/services
http://www.моя.адреса.com/contact
а тих що "так захотіли" треба переконати, що вони неправі.
так можна зробити і описаним вище способом. Як? Це на домашнє завдання
|
|
Андрій Пелещишин
Адміністратор
Повідомлень: 9191
Зареєстрований: 19-6-2002
Місто: Львів, Україна
Нема на форумі
Настрій: Настрій не вказаний
|
|
Цитата: | Першим відправив користувач marco
так можна зробити і описаним вище способом. Як? Це на домашнє завдання |
А є така магічна штука, як RewriteEngine
|
|
marco
Академік
Повідомлень: 752
Зареєстрований: 3-2-2003
Місто: Львів, центр
Нема на форумі
Настрій: стабільний
|
|
Цитата: | Першим відправив користувач Андрій Пелещишин
А є така магічна штука, як RewriteEngine |
Так, але тут можна обійтися і без rewrite.
Окрім того, не всі хостинг провайдери дозволяють локальний .hatccess
|
|
Андрій Пелещишин
Адміністратор
Повідомлень: 9191
Зареєстрований: 19-6-2002
Місто: Львів, Україна
Нема на форумі
Настрій: Настрій не вказаний
|
|
2 marco
Можна, чого ж ні. Можна і 404 оборобляти. І дефолтну сторінку визначати. Але і так і
так потрібен htaccess. А може
ще щось, підкажіть як без htaccess.
А ну його, хостера без htaccess
Але РеврітеЕнжина - найелегантніше
|
|
Ihor Byra
Дійсний член
Повідомлень: 122
Зареєстрований: 12-5-2003
Місто: Lviv
Нема на форумі
Настрій: )
|
|
to fish
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
Якщо тобі треба десь отакого типу, як тут http://www.zsu.zp.ua/99/sh/main.php?item=news то, може, зумію допомогти.
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
Так саме так мені треба і зробити
|
|
Ihor Byra
Дійсний член
Повідомлень: 122
Зареєстрований: 12-5-2003
Місто: Lviv
Нема на форумі
Настрій: )
|
|
Всім дякую за допомогу. Буду пробувати всі варіанти, які ви мені порадили
|
|
fish
Почесний Академік
Повідомлень: 1592
Зареєстрований: 28-5-2003
Місто: Запоріжжя
Нема на форумі
Настрій: присутній
|
|
ну то влаштоване просто. Робиться файл-шаблон index.php де змінюватиметься тільки
текстова частина. І робиться кілька текстових (або htm-) файликів з назвами news.txt,
foto.txt Посилання так і прописуються: index.php?item=news index.php?item=foto а в місці, де має
відображатися інформаційний блок просто вставляється <?php include('$item.txt' ) ?>
Може круті майстри то й мудріше роблять, я початківець...
карнавал мусить тривати далі, інакше йому настане кінець
|
|
Ihor Byra
Дійсний член
Повідомлень: 122
Зареєстрований: 12-5-2003
Місто: Lviv
Нема на форумі
Настрій: )
|
|
to fish
Та ні це мені не підходить. Одна функція include() не зможе зробити цього всього.
Та всеодно дякую за пораду
|
|
fish
Почесний Академік
Повідомлень: 1592
Зареєстрований: 28-5-2003
Місто: Запоріжжя
Нема на форумі
Настрій: присутній
|
|
то я ж і питала, чи тобі треба так, як там і чи того досить.
карнавал мусить тривати далі, інакше йому настане кінець
|
|