[чайниковский вопрос]Ограничение на длину строки параметров в УРЛ17.03.05 20:33 Автор: Garick <Yuriy> Статус: Elderman Отредактировано 17.03.05 20:33 Количество правок: 1
тут попросили доработать akogallery для mambo
а именно добавить поиск по галлерее.
решил пределать стандартный интерефейс галереи
и возникла проблема: при переходе по страницам надо передавать через УРЛ слишком длинную строку, которая не помещается (иль блокируется) в строку параметров (после "?"). Как обойти ограничение?
Можно меня отправить в поиск, но с поисковой строкой:-))
А метод POST нельзя использовать?18.03.05 11:07 Автор: HandleX <Александр М.> Статус: The Elderman
Ссылка имеет такой вид: <a href="javascript:picselect(blablabla)">
Вместо blablabla - параметры, которые должны передаваться по ссылке.
На странице есть форма:
<form name=f1 type=post enctype="application/x-www-urlencoded">
<input type="hidden" name="param1" value="something">
<input type="hidden" name="param2" value="something">
.....
</form>
Вот и всё, в общем-то. В form.submit() возможно ошибся - точно не помню, как выглядит эта функция. Если не пойдёт - зайди на любой чат и посмотри - там обычно оно используется (кнопка "написать" на самом деле не submit, а обычный button, который этот самый submit вызывает)
Ещё, как вариант, можно прописывать параметры в кукисы, но они имеют свойство блокироваться. Ну это так, к слову.
Прошлый пост про невозможность написал необдумавши, но тем не менее, структуру сайта пересмотреть всё же стоит.
Никак нельзя обойти18.03.05 01:29 Автор: Heller <Heller> Статус: Elderman
Ограничение это жёстко прописано в браузере и ничего здесь не поделаешь - придётся искать альтернативные варианты. Либо писать патч под каждый браузер и заставлять каждого юзера его выкачивать :-) В общем, вариантов здесь нет. (Хотя, имхо, играничение в 255 символов более чем достаточно; если такой строки не хватает для галлереи, то тут явно надо пересматривать структуру сайта)
Решил передавать через таблицу...19.03.05 21:47 Автор: Garick <Yuriy> Статус: Elderman
Решил не рисковать со скриптами на стороне клиента (жабаскрипты). Подключение к сайту имеют и буржуи, а там есть недостатки. То жаба машины нет, то отключено. А суппорт буржуев дороговато обходится:-)
не смог найти как получить ид сессии в мамбе, пришлось с мд5 делать.
формирую строку поиска, кодирую мд5. Записываю это в таблицу + таймштамп. А на след страницу через параметры УРЛ передаю мд5 штамп. На странице выбираю по мд5 из таблицы строку поиска и отдаю ее в интерфейсу.
Достаточно не сложно. Но необходимо делать чистку таблицы, тк поверность поиска достаточна велика.
Решил удалять записи старше 7 дней (все равно время жизни сессии меньше) . И делать это перед записью очередного запроса в таблицу.
В посте особенно и вороса то нет:-)
может у кого замечания/пожелания?:-)
А чем сессии не устраивают?19.03.05 22:17 Автор: J'JF <Dmytro Volhushyn> Статус: Elderman
> Решил не рисковать со скриптами на стороне клиента > (жабаскрипты). Подключение к сайту имеют и буржуи, а там > есть недостатки. То жаба машины нет, то отключено. А > суппорт буржуев дороговато обходится:-)
И то верно.
> не смог найти как получить ид сессии в мамбе, пришлось с > мд5 делать.
> может у кого замечания/пожелания?:-)
А зачем получать ид сессии? Тебе, по большому счету, от нее ни холодно ни жарко - пусть эту работу за тебя пхп делает.
К примеру, у тебя есть строка поиска (или вообще что-то - куча переменных, например) и тебе ее нужно сохранить для каждого пользователя свою.
Тогда бери в руки массив $_SESSION и ворочай (это, конечно, если мамба использует стандартные сессии, в чем я не уверен, однако считаю вероятность этого исключительно высокой). То есть если ты хочешь сохранить для пользователя значение переменной A, то нужно сделать вот так:
$_SESSION['A'] = 'something';
И все. Теперь ты можешь свободно использовать переменную $_SESSION['A'] и быть уверенным, что у каждой сессии она будет своя и не будет зависеть от других. И никакой мороки с чисткой таблиц и БД вообще. Все сделает пхп.
Это как это? Жабамашина и жабаскрипт - разные вещи...20.03.05 13:52 Автор: Heller <Heller> Статус: Elderman
> > Решил не рисковать со скриптами на стороне клиента > > (жабаскрипты). Подключение к сайту имеют и буржуи, а > там > > есть недостатки. То жаба машины нет, то отключено. А > > суппорт буржуев дороговато обходится:-) > > И то верно. Это как это? Жабамашина и жабаскрипт - разные вещи. Жабамашина используется для апплетов и javascript никакого отношения к ней не имеет. Я не видел ещё ни одного пользователя, у которого были бы проблемы с javascript. К тому же все используемые в скрипте функции предельно просты и можно быть увереным, что именно в данном случае они браузеронезависимы.
> > может у кого замечания/пожелания?:-) Замечаний/пожеланий в общем-то никаких, но, имхо, это всё лишнее усложнение простых вещей. А можно ссылку на сайт посмотреть? Может быть что более конкретно посоветую.
> Например, у меня в браузере яваскрипты отключены и включаю > я их только в том случае, когда очень сильно нужно. Это всё же редкость - у основной массы пользователей javascript включён. С той же вероятностью можно напороться и на что-нибудь другое.
Пытался найти более авторитетных источников, но ни чего кроме http://www.w3.org/Security/Faq/wwwsf2.html#CLT-Q6 не нашёл. Про Java Machine и Javascript в отдельности информации куча, но нигде она не пересекается. Но, тем не менее, думаю, что приведённых ссылок достаточно. Да и потом, если по-вашему, то почему же одно называется скриптом, а другое апплетом? :-)
см. личку - не хочу тут флейм разводить.20.03.05 22:33 Автор: J'JF <Dmytro Volhushyn> Статус: Elderman
> Можно ли сделать несколько невидимых фреймов и передавать > части парамета через url'ы разных фреймов? Тогда url в каждом фрейме придётся дополнительно как-то "помечать" (например, добавлять id), что бы на стороне сервера было известно, что для нескольких страниц параметры нужно объединять в один. Можно, конечно, делать проверку ip'шника - если с одного адреса несколько запросов по разным url'ам одинакового вида - параметры объединяются, но здесь могут быть глюки, если юзер открыл несколько окон или несколько человек лезет через один непрозрачный прокси.
При этом нужно ещё учитывать, что Инет имеет свойство тормозить - надо обязательно делать задержку для ожидания параметров из другого "фрейма". В общем жуть - намного проще через POST.