| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > index.php?act=smth |
| Автор: anonymous_userus 9.8.2004, 13:02 |
| Здравствуйте.. Нужна ваша помосчь. Я начинающий в PHP Вот, например, взять форум типа Ib или phpbb, там кроме одной страницы index.php ничего нету. Я хочу сделать такое же. Т.е. вот допустим у меня на сайте ссылки на разделы, я хочу сделать так чтобы у каждого раздела было свое имя и к разделу можно было перейти введя в браузере что-то типа такого: /index.php?act=guestbook или /index.php?act=faq а в самом index.php сделать проверку, на act, т.е. если act=faq то и include("faq") (хотя это наверное гемор, мне кажется делается это по-другому) воот. надеюсь поняли. надеюсь поможете. с уважением. |
| Автор: Secandr 9.8.2004, 13:14 |
| А что не получается? |
| Автор: S.A.P. 9.8.2004, 13:59 |
| Кажется, проще будет вызывать отдельные части при помощи запроса, типа index.php?guestbook. Строка "guestbook" будет храниться в $QUERY_STRING, а там уже анализируй и подключай файлы, какие надо. |
| Автор: anonymous_userus 9.8.2004, 14:07 | ||||
нет, не получается, к сожалению вообщем я сделал так на главной
но есть одна маленькая проблемка. если я пишу /index.php?act= , то тогда всё нормально, делается дефолтный выбор в switch($act), т.е делается include("default.php") Но, если я пишу просто адрес сайта (в моём случае- localhost/foo) или просто /index.php то появляется ошибка Notice: Undefined variable: act in x:\home\localhost\www\foo\index.php on line 72. никак не допераю до того, что надо сделать |
| Автор: Secandr 9.8.2004, 14:11 |
| а что в x:\home\localhost\www\foo\index.php в 72 строке? |
| Автор: Ignat 9.8.2004, 14:56 | ||
|
| Автор: S.A.P. 9.8.2004, 15:44 |
| Мужики, не понял, я вроде написал как сделать: для этой цели нет необходимость вводить новую переменную $act, достаточно использовать запрос типа index.php?string, а string будет находиться в переменой $QUERY_STRING |
| Автор: anonymous_userus 9.8.2004, 15:47 | ||
да там собственно и было "switch($act){" Ignat, спасибо помогло. спасибо всем. |
| Автор: anonymous_userus 9.8.2004, 15:50 | ||||
переменная $QUERY_STRING это что? |
| Автор: Ignat 9.8.2004, 16:21 | ||||
Увидишь. |
| Автор: IZ@TOP 9.8.2004, 16:57 | ||
Вот они, ошибки программирования. А ты теперь подумай что заинклуденный скрипт передает какие ни будь параметры через урл. И что даст нам QUERY_STRING при таком запросе: index.php?guestbook&act=add_post ? Будем инкляйдеть по умолчанию default.php а запись в гостевуху не запишется! |
| Автор: skalex 9.8.2004, 17:27 | ||
| Вообще я считаю, что такой подход не совсем удобен! Гораздо удобнее делать так: Код index.php (на этот файл надо заворачивать любой запрос к сайту (с помощью .htaccess))
|
| Автор: Sufius 9.8.2004, 19:33 |
| Небольшой оффтоп... А что будет быстрее работать? Сайт "одной страницы", как описано выше... или обычный набор страниц с инклюдами шапки и боттома и с инфой между ними? |
| Автор: IZ@TOP 10.8.2004, 01:53 |
| Думаю что второй вариант. Но имхо неудобный. |
| Автор: skalex 10.8.2004, 07:55 |
| Sufius Я думаю что ты вряд ли почуствуешь разницу в скорости работы. |
| Автор: Secandr 10.8.2004, 08:23 |
| Если сайт маленький ~10 страниц, то удобнее хранить всё в одном файле, если сайт большой и сложный, то необходимо разбивать на файлы, поскольку запутаешься. Причём лучше разделять код php и html шаблоны. Существует два варианта: использовать шаблоны или писать функции в которых содержится html "псевдо шаблоны |
| Автор: d1mac 10.8.2004, 11:49 | ||
вообщем написал так:
я так понял это - если 'act' не пуст или если 'act' определен {дальше не понятно} ааа :wacko: обьясните, что значит эта строка, плиз. :help: |
| Автор: Sufius 10.8.2004, 13:45 |
| 2 Изатоп Почему неудобно? <? require ("functions.php"); // подключение функций include ('top.php'); // макуушка ?> пошел обычный хтмл <? include('bottom.php'); ?> И всё... Ну при использовании сессий немножко код будет более громоздкий... Я просто тут думаю... у меня сайт на 50 страниц с информацией... на одну страницу я грюкнусь код писать =))) 2 остальные Спасибо за ответы =) |
| Автор: Ignat 10.8.2004, 14:07 | ||
Эта строка означает, что условие выполнится, когда $_GET['act'] существует И не пуст. Имхо, в дополнении isset($_GET['act']) нет смысла - функция empty вернет true и в случае пустоты, и в случае неопределенности |
| Автор: S.A.P. 10.8.2004, 14:46 | ||
| IZ@TOP В случае, где необходимо использовать такие сложные запросы, с помощью которых, к примеру, можно сразу добавлять запись в готевую книгу, должен признать, что я был не прав
|
| Автор: IZ@TOP 10.8.2004, 16:05 |
| Perchilla Лучше сразу "в грязь", зато теперь будешь знать как хорошо, а как плохо А по сабжу скажу: самое лучшее использование движка на MYSQL + HTML Templates + PHP Template Modules. Mysql думаю понятно что такое. HTML Templates это шаблоны HTML страниц. Достаточно всего нескольких для разных данных в которых и генерится вся инфа. Еще их можно ккешировать. Определять были ли изменения данных в базе, если да - обновить кэш, нет - не обращаться за данными к MYSQL а просто выдать страницу из кэша. PHP Templates Modules это что то вроде подключаемых php скриптов внутрь страницы, только они подключаются динамически в зависимости от того, какой модуль требуется для данного раздела/документа, а дальше все управление контентом передается в модуль, или инфа полученная из модуля передается в движок и парсится в шаблонах. |