Выбор метода передачи параметров...

Orlando

Guest
Выбор метода передачи параметров...

Здравствуйте!!

Иногда при переходе по ссылке возникает потребность передачи большого количества параметров (допустим, более 10-ти).
Как эти параметры лучше передавать?

Мне известные методы:

1) В url-адресе:
http:\\site.ru?par1=value&par2=value&........
Минусы:
- длинный и некрасивый url
- при использовании ООП эти параметры необходимо прописывать и в функциях, а функция с 10 и более параметрами - это ужас..

2) Сохранять в переменных сессии

3) Сохранять в базе данных для каждого пользователя по его сессион_ид

На счет корректности методов 2 и 3 при большом количестве переменных и пользователей ничего не знаю???

Так вот какой метод является наиболее правильным, может подскажите метод, которого нет среди этих трёх?
 

SiMM

Новичок
> - длинный и ... url
Если это необходимо - никуда от этого не деться.

> некрасивый url
А они все одинаково некрасивые, кроме того, большинству пользователей совершенно без разницы, как он выглядит.

> - при использовании ООП эти параметры необходимо прописывать и в функциях, а функция с 10 и более параметрами - это ужас..
В функции, в частности, можно передавать даже целые массивы. И вообще ООП приплели, имхо, не к месту.

> 2) Сохранять в переменных сессии
> 3) Сохранять в базе данных для каждого пользователя по его сессион_ид
Это, в сущности, одно и то же, но по вашему описанию нельзя сказать, насколько это применимо.

> Так вот какой метод является наиболее правильным, может подскажите метод, которого нет среди этих трёх?
Зависит от ситуации
 

ForJest

- свежая кровь
лучше определяется исходя из задачи. Конкретной. Для конкретной задачи конкретно лучше один из методов.
 

lucas

Guest
Иногда при переходе по ссылке возникает потребность передачи большого количества параметров (допустим, более 10-ти).
Конкретный пример в студию.
 

Orlando

Guest
> - при использовании ООП эти параметры необходимо прописывать и в функциях, а функция с 10 и более параметрами - это ужас..
>>В функции, в частности, можно передавать даже целые массивы. И вообще ООП приплели, имхо, не к месту.
Просто я использую ООП. И частенько передаю массивы переменных в функции, но потом попробуй разберись в этом массиве что и где.
Ещё к тому же если в урле есть [], то тот же yandex на такие страницы ругается...

> 2) Сохранять в переменных сессии
> 3) Сохранять в базе данных для каждого пользователя по его сессион_ид
Это, в сущности, одно и то же, но по вашему описанию нельзя сказать, насколько это применимо.

> Так вот какой метод является наиболее правильным, может подскажите метод, которого нет среди этих трёх?
Зависит от ситуации

Пример:
Реализация знакомств:
Есть поисковый блок - около 10-ти параметров поиска.
Пользователь заполнил некоторые поля, осуществил поиск, вывелось какое-то количество анкет. Он рассматривает подробные данные по анкетам, переходит от страницы к странице (выводиться по 15 анкет на страницу). Все данные в поисковом блоке сохраняются, он может заполнить ещё какие-нибудь параметры поиска и опять отфильтровать анкеты..

Каким методом лучше реализовать передачу параметров??
 

Orlando

Guest
Автор оригинала: SiMM
GET'ом. Т.е. всё должно быть в URI
Почему?
Ведь ладно ещё пользователю всё равно какой УРЛ, но как же в этом случае захламляется код!!! Для всех ссылок (а их не мало) надо прописывать строку из 10-ти параметров.
Какие преимущества дает этот метод?
 

lucas

Guest
1.
пользователю всё равно какой УРЛ
Ему и вправду все равно.
Пользователь пытается запомнить адреса, на которые он может вернуться (например, dates4you.ru/girls/vika[/85]).
В твоем случае, он скорее повторит поиск, заново указав нужные параметры, т. е. "красота урла" не важна.

2. Сконкатенируй все параметры в ОДНУ строку и подставляй всю ее когда и как нужно.
 

SiMM

Новичок
> Для всех ссылок (а их не мало) надо прописывать строку из 10-ти параметров.
Для всех - не надо. Это вы батенька преувеличиваете. Чтобы посмотреть конкретную анкету - достаточно дать её id, а не приплетать к url'у массу параметров.

> Какие преимущества дает этот метод?
Очевидные. Я всегда могу сохранить закладку и/или поделиться ссылкой с кем угодно. И при этом быть уверенным, что увижу(увидят) именно то, что и ожидалось.
 

Orlando

Guest
А если мне захочется использовать ЧПУ на данном сайте, то что тогда, как в этом случае мне надо передавать эту кучу переменных??
 

SiMM

Новичок
> А если мне захочется использовать ЧПУ на данном сайте
Да ради бога.

> как в этом случае мне надо передавать эту кучу переменных??
Аналогично. Кроме того - мало смысла делать ЧПУ для переменных, влияющих на результаты поиска. Хотя ничто и не мешает делать это. Парсить правда строку запроса наверно проще будет в скрипте, а не правилами в rewrite
 

Orlando

Guest
>Для всех - не надо. Это вы батенька преувеличиваете. Чтобы посмотреть конкретную анкету - достаточно дать её id, а не приплетать к url'у массу параметров.

- Блок поиска торчит на всех страницах знакомств (встроен в дизайн).
 

lucas

Guest
Блок поиска торчит на всех страницах знакомств (встроен в дизайн).
И что? Заполнен он будет только на страницах, где производится поиск/просмотр его результатов.

А на других -- он пустой (если мы смотрим страницу Маши, значет кто-то открывал именно страницу Маши, а не абстрактную страницу с фиг-знает-какими параметрами поиска).

Конкретные примеры урлов (для закрепления :)).

/search.php?parameters...
/search_results.php?page=4&parameters...
/person.php?id=85

Или:
/search/
/search/?parameters...
/person/85/
 

Orlando

Guest
> Кроме того - мало смысла делать ЧПУ для переменных, влияющих на результаты поиска.

Во.. во!! Этого я и хочу избежать!! Для параметров поиска ЧПУ не хочу использовать.
Просто знакомства - это лишь небольшая часть сайта! А для всего сайта применение ЧПУ даст определенные плюсы!!
 

Фанат

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

Orlando

Guest
Я никого отвечать не заставляю, просто помимо практической задачи (знакомств) хочу выяснить плюсы и минусы других методов передачи переменных.

> здесь форум веб-профессионалов, а не психоаналитиков
Тогда почему ты выступаешь здесь в роли психоаналитика??
 

lucas

Guest
Orlando

Поумерь-ка свой пыл, тебе уже все объяснили по твоему вопросу.

Если есть еще вопросы по теме -- пиши, в противном случае ты свободен.
 

Orlando

Guest
Не меня успокаивай, я не первый это начал!!
 

Smartbb

Новичок
Ещё к тому же если в урле есть [], то тот же yandex на такие страницы ругается...
А вы думаете яндекс будет заполнять поисковую и форму и юзать ее? :):):)

А если мне захочется использовать ЧПУ на данном сайте
А смысл? ЧПУ было актуальным когда когда поисковики не индексировали сайты с ?
 
Сверху