Навигация по сайту, сессии, поисковики и скорость.

  • Автор темы paganelp
  • Дата начала

paganelp

Guest
Навигация по сайту, сессии, поисковики и скорость.

На данный момент есть 2 части сайта. Общая и для администрирования.
Рассмативается общая, т.е. доступная для всех без аутентификации.

В данный момент навигация по сайту происходит через передачу параметров методом GET. Т.е. в виде index.php?page=<идентификатор_страницы>
Но теперь возникла необходимость передавать помимо этого параметра еще и другие. Просто я добавил возможность расширения функционала сайта, через одключение доп. модулей.
Для примера есть страница c page=10, на ней выводится контент, генерируемый модулем новостей. Без передачи параметров выводится лента новостей. Если передаем доп. параметр (news_id=<идентификатор_новости>), то выводится конкретная новость.
Тоже самое будет и с другими модулями, которым нужны дополнительные параметры.

Подумывал использовать для передачи параметров сессии, но потом подумал, что поисковые системы не смогут индексировать сайт.

Вопрос: имеет ли смысл "запихивать" переменные (возможно все, кроме page) в сессию, а не передавать их через GET? Будут ли поисковики правильно индексировать сайт?

Возможно другим модулям (которые еще не написаны) потребуется передача большого количества параметров.
Почитав топик понял, что на скорость работы сессии влияния практически не оказывают.

За любые мысли по этой теме буду очень благодарен.
 

Фанат

oncle terrible
Команда форума
Не имеет.
Не будут.
причем не только поисковики обломаются, но и общая юзабилити сайта значительно упадет.

Вопрос, который меня всегда интересовал - с какой стати модуль обязательно надо подключать, как page=10, а не как module.php или /module/.
Но я на него никогда не получу ответа, да
 
А как же быть с адресной строкой как частью интерфейса пользователя, который должен тоже "ласкать взор". Или этот вопрос решили, а я пропустил.
Правда, интересно.
 

Фанат

oncle terrible
Команда форума
Независимо от решения данного животремещущего вопроса, к текущей теме он не имеет ни малейшего отношения.

Тем более, что ценность этой части интерфейса весьма сильно преувеличена
 

paganelp

Guest
to ФАНАТ:
ответ прост. Все дело в том, что я разрабытывал ядро сайта с таким расчетом, что бы на страницу можно было размещать любой набор контентов

Концепция сайта какова, что во главе навигации лежт страница, т.е. ее номер. А уже что лежит на данной странице это уже дело "менеджера контента". Попытаюсь объяснить поподробнее.

На странице может размещатся набор состоящий из различных блоков наполнения. Т.е., например:
страница
PAGE=101
наполнение:
[1] = статичное наполнение id_content=1
[2] = статичное наполнение id_content=65
[3] = статичное наполнение id_content=3
[4] = наполнение из модуля id_module=1
[5] = наполнение из модуля id_module=5

Таким образом получаем очень гибкое наполнение страницы.

И от сюда невозможность реализации навигации, указанной выше.
 

Фанат

oncle terrible
Команда форума
вообще-то, никакой связи между номером страницы и её наполнением я не вижу.
12345 прописывается в самой странице 101?
не вычисляется из 101? если так, то почему страница не может иметь любой другой идентификатор?
 

SiMM

Новичок
> А как же быть с адресной строкой как частью интерфейса пользователя, который должен тоже "ласкать взор".
Кому должен? Поисковику? Ему по барабану. А сессии использовать где попало - глупость - что удобного в том, что ты даже линкой поделиться не сможешь?

> что бы на страницу можно было размещать любой набор контентов
Любой "набор контентов" должен иметь вполне определённый URI

> А уже что лежит на данной странице это уже дело "менеджера контента".
Поисковику рассказывай эти байки. А так же пользователям, которые по глупости попробуют сходить по ссылкам, которые им даст поисковик, и не обнаружат там того, чего искали.
 

paganelp

Guest
> не вычисляется из 101?
нет, не вычисляется. В базе храниться связь СТРАНИЦА <--> КОНТЕНТ.

> если так, то почему страница не может иметь любой другой идентификатор?
Какой другой? Видимо я не понял смысла этой фразы.
Или ты хочешь сказать, что идентификатор страницы должен быть (из описанного выше пример) например, такой s1s65s3m1m5?
Тогда в этом случае получается что пользователь сам сможет "набрать" любой контент себе на страницу. Что есть нехорошо.

> А так же пользователям, которые по глупости попробуют сходить по ссылкам, которые им даст поисковик, и не обнаружат там того, чего искали.
А почему так должно произойти? Если редактор сайта сочтет нужным удалить данный контент, то так и должно быть. А если .... , а другого если я не вижу.
Может быть опять чего не понял :)
 

Фанат

oncle terrible
Команда форума
Или ты хочешь сказать, что идентификатор страницы должен быть (из описанного выше пример) например, такой s1s65s3m1m5?
нет, я хочу сказать, что идентификатор страницы должен быть modele.php
это гораздо приятнее глазу.

почему так должно произойти?
потому, что ты не понимаешь, что такое сессия. Рекомендую углубленно изучить этот вопрос
 

paganelp

Guest
> потому, что ты не понимаешь, что такое сессия. Рекомендую углубленно изучить этот вопрос
Я уже про сессии не говорю. Если это о сессии, то тогда понятно. Сессии отпали.

> нет, я хочу сказать, что идентификатор страницы должен быть modele.php это гораздо приятнее глазу.

все равно не понимаю.
т.е. надо так:
вместо index.php?page=10
надо module.php?page=10

Только из-за красоты?
Просто index.php это единственный скрипт, который отдает данные, через него происходит вся работа.
 

Фанат

oncle terrible
Команда форума
вместо index.php?page=10
надо module.php

Просто index.php это единственный скрипт, который отдает данные, через него происходит вся работа.
вот именно это я как раз искренне не могу понять - зачем.

-~{}~ 06.02.05 15:12:

Только из-за красоты?
не только.
а чтобы заодно решить твою проблему.
 

paganelp

Guest
видимо прохо я объясняю. :)

на одной странице может быть несколько блоков, состоящих из различных модулей.
 

Фанат

oncle terrible
Команда форума
а при чем здесь модули, которые вызываются изнутри скрипта,если мы сейчас говорит об адресе этого скрипта?
только, умоляю, не надо говорить, что эти блоки вызываются, как include('http://site/index.php?page=2')!
 

Нечто

Психолог РНРClub
Фанат
У человека в структуре заложено то, что страница не соответствует одному конкретному модулю (что прогрессивно). Он не может сделать articles.php или news.php, т.к. есть единая точка входа - index.php, и на одной странице может быть несколько видов контента.

paganelp
Сессии предназначены вовсе не для серфинга по сайту. Эта кромольная мысль могла возникнуть только из-за того, что ты не совсем понимаешь, зачем они нужны.
Если параметр page - это ядро, то все остальные параметры должны ловиться модулями. Спрятать их никак нельзя, да и не нужно. Если хочется как-то приукрасить url, то посмотри в сторону SEF урлов. Возможно, получится что-то типа /page/2/news_id/23/
 

Фанат

oncle terrible
Команда форума
ему никто не мешает сделать vinegret.php вместо index.php?page=2, и попробовать со всей этой хренью взлететь.
Вопрос "какого барахла мне побольшенапихать в страницу, чтобы она выглядела как мжно круче" не имеет никакого отношения к вопросу "какой адрес должен быть у этой страницы". контент все равно прописан в менеджере

-~{}~ 06.02.05 15:33:

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

paganelp

Guest
to ФАНФТ:
>блоки вызываются, как include('http://site/index.php?page=2')!
конечно нет.

to НЕЧТО:
УРА!!! Меня поняли!!!!

Я понямаю, что такое сессии, и понимаю зачем они нужны. Вопрос действительно был о том, нужно ли прятать или нет. У меня была идея прятать дополнительные параметры, что бы меньше было возможносей подсунуть ядру "левых" параметров. Хотя по большому счету я все переменные и так безу через $_GET или $_POST. И больше чем я захочу ядро переменных не возьмет.
А по поводу SEF, это что mod_rewrite?
 

Фанат

oncle terrible
Команда форума
меня еще такой вопрос мучает
Но теперь возникла необходимость передавать помимо этого параметра еще и другие. Просто я добавил возможность расширения функционала сайта, через одключение доп. модулей
а что - раньше, до подключения доп модулей, передавать дополнительные параметры не требовалось?
страница "о сайте" и "новость с айди 518" и "статьи по авиамеханике" - все это вызывалось просто по номеру страницы?
 

paganelp

Guest
нет. раньше этого просто небыло.
дело в том, что пока было написано только ядро.
Я решил отделить ядро от модулей.
Т.е. если модулю не нужны дополнительные параметры, то он и так все отобразит как надо.
А модуль новостей находится сейчас в разработке. Это первый модуль, которому потребовались параметры. Модулям стоящим на очереди тоже будут нужны дополнительные параметры.
На стадии проектирования я решил, что все параметры будут передаваться через GET. Но сейчас решил спросить у опытных лудей как это делать правильней.

А редактировать несколькими сообщениями выше некрасиво. Там совсем о другом решь шла. А про дополнительные параметры уже написал выше. Об этом я думал еще на стадии проектирования. :(
 

Span

Новичок
Я чего-то не понимаю проблемы, ну передавай гет параметров сколько влезет, а в своих модулях чекай $HTTP_GET_VARS. Или не все так просто и я чего-то упустил?
 

paganelp

Guest
Нет, ты практически ничего не упустил :)
Вопрос только в том, насколько это красиво и юзабилити?

Я вообще и делаю
PHP:
$my_variable = $_GET['VARIABLE']
 
Сверху