Jump to content
  • 0

Как сделать навигацию типа index.php?action=15


Pavel_html
 Share

Question

  • Answers 56
  • Created
  • Last Reply

Top Posters For This Question

Recommended Posts

  • 0

Как вариант создать таблицу в БД c полями id_action, page и etc и выд?ргивать page по id_action=(int)$_GET['action'], самая простая реализация ,без регулярных выражений. Сам использую БД для таких вещей, и храню в ней структуру сайта в nested sets (убиваю 2х индейцев сразу, готовая карта сайта + ЧПУ), механизм конечно намного сложнее, с фронт контроллером, MVC и etc. Хотя не понятно зачем топик стартеру, делать дополнительные движения и переходить с ?action=5 на blabla.html, вроде бы все наоборот делают :)

Link to comment
Share on other sites

  • 0

Я же привел самое простое решение этой проблемы:

1 - делаешь переменную $action;

2 - создаешь switch($action);

И не нужно больше ничего - ни регулярок, ни базы, ни функций дополнительных, вообще можно выключить мозг, включить 2х2 и отдыхать :)

Link to comment
Share on other sites

  • 0

С хранением названия файла в БД - очень кстати удобно. Допустим есть только один файл index.php - задает общую и единую разметку для всех страниц. В его начале делаем простые действия в блоке пхп:

1) Коннект к БД

2) из массива $_GET извлекаем action и sub (для подразделов сайта), с соовтествующей проверкой на is_numeric

3) из таблы в БД извлекаем название файла укоторого

... action='.$ACT.' AND sub='.$SUB.'.... и сохраняем в какую нить переменную.

4) Можно аналогично пройтись по вс? той же табле чтобы сфомриовать в одну текстовую строку html код для меню сайта.

чтобы были ссылки вида Новости т.е. раздел сайта второй, подраздел нулевой. Если у раздела Новости будут подразделы то СУБ будет отличаться от нуля. Предел фантазии неограничен.

5) Когда есть название файла, есть переменная с кодом менюшки, выдаем сам хтмл код, и в нужные места

вставляем код меню обычным эхом, а в той области в ДИВ или в ячейку таблы include(имя_файла_из_таблы);

Преимущества:

1) Гибкая и быстрая настройка всех разделов сайта, добавление новых - это лишь новая строка в табле с именем файла, иномерами категорий, редактирование существующих, в табле же можно хранить и название разделов и подразделов.

2) Защита от дурака и хакера - кроме как существующих номеров в табле ниче больше в адреснуюю строку не вставишь, или толку от этого будет мало. В самом начале индекс.пхп присвоить этим переменным значения по умолчанию и все.

3) Весь контент который будет показывать в центральной части сайта можно покидать в одну папку, например content/news.php content/guest.php и т.д. Тогда добавление раздела ограничится добавление строки в таблу, и создание нового файла. С пхп и хтмл кодом.

4) Названия файлов этих скрыто от посторонних глаз.

5) Любой раздел можно в любой момент заблокировать предусмотрев поле, скажем status =)

6) Все страницы в одном стиле задаваемом в файле индекс.пхп

Недостатки:

1) бывают траблы если потребуется на некоторых страничках кукисы или хедерсы отослать. Тогда в индекспхп надо отдельно отслеживать переходы на такие страницы и потом делать то что надо:

if($ACT==3 AND $SUB==4)

{

headers(...

или

сеткуки(...

}

Такая система работает без траблов на моем сайте и не нарадуюсь (я противник CMS, лучше ручками с нуля).

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share


×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy