
Питання до PHP програмістів
Повернутися до дискусії на Форум Рідного Міста
Ihor Byra - 9-10-2003 в 11:21
Попросили мене зробити один сайт в PHP. А крім цього вони ще захотіли щоб сторінки відображалися таким способом:
http://www.моя.адреса.com/index.php?action=Guestbook
Я ніби все роблю правильно, але тільки коли переходити на іншу сторінку меню не міняється, а просто добавляється під меню сторінки index.php. 
Якщо хтось з вас би міг - то напишіть мені правильний PHP код.
Тільки це не повинно бути в класах, бо там занадто багато інформації, щоб на кожну робити свій клас. 
marco - 9-10-2003 в 13:56
Наскільки я зрозумів питання, то в файлі index.php треба зробити обробку змінної action і в саму сторінку включати відповідний контент.
fish - 9-10-2003 в 15:13
не дуже добре зрозуміла запитання... Якщо тобі треба десь отакого типу, як тут http://www.zsu.zp.ua/99/sh/main.php?item=news то, може, зумію допомогти.
marco - 9-10-2003 в 19:42
|
Першим
відправив користувач 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
а тих що "так захотіли" треба переконати, що вони неправі.
так можна зробити і описаним вище способом. Як? Це на домашнє завдання
Андрій Пелещишин - 9-10-2003 в 20:09
|
Першим
відправив користувач marco
так можна зробити і описаним вище способом. Як? Це на домашнє завдання
|
А є така магічна штука, як RewriteEngine
marco - 9-10-2003 в 20:53
|
Першим
відправив користувач Андрій Пелещишин
А є така магічна штука, як RewriteEngine |
Так, але тут можна обійтися і без rewrite.
Окрім того, не всі хостинг провайдери дозволяють локальний .hatccess
Андрій Пелещишин - 9-10-2003 в 23:05
2 marco
Можна, чого ж ні. Можна і 404 оборобляти. І дефолтну сторінку визначати. Але і так і так потрібен htaccess. А може
ще щось, підкажіть як без htaccess.
А ну його, хостера без htaccess
Але РеврітеЕнжина - найелегантніше
Ihor Byra - 10-10-2003 в 11:33
to fish
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
Якщо тобі треба десь отакого типу, як тут http://www.zsu.zp.ua/99/sh/main.php?item=news то, може, зумію допомогти.
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
Так саме так мені треба і зробити
Ihor Byra - 10-10-2003 в 11:38
Всім дякую за допомогу. Буду пробувати всі варіанти, які ви мені порадили
fish - 10-10-2003 в 12:13
ну то влаштоване просто. Робиться файл-шаблон index.php де змінюватиметься тільки текстова частина. І робиться кілька текстових (або htm-) файликів з
назвами news.txt, foto.txt Посилання так і прописуються: index.php?item=news index.php?item=foto а в місці, де має відображатися інформаційний блок
просто вставляється <?php include('$item.txt' ) ?>
Може круті майстри то й мудріше роблять, я початківець...
Ihor Byra - 10-10-2003 в 12:29
to fish
Та ні це мені не підходить. Одна функція include() не зможе зробити цього всього.
Та всеодно дякую за пораду
fish - 10-10-2003 в 12:35
то я ж і питала, чи тобі треба так, як там і чи того досить.
Повернутися до дискусії на Форум Рідного Міста
directory 6r-1719
random 5-1719