Зацените url_serialize

NEK

Guest
Автор оригинала: ForJest
NEK а ты слышал про сессии? Это такая секретная разработка для PHP.
Нет знаешь никогда не слышал и не видел !!!
$_SESSION['egik_v_tumane']='white';
Дело же не в сессиях просто часть данных меняется проходя форму. Если сесиями, то
PHP:
  $_list=$_SESSION['array_to_replace'];
  for($i=0;$i<sizeof($_list);$i++) 
    foreach($_SESSION[$_list[$i]] as $k=>$v)
       if(!ISSET($_SESSION[$_list[$i]][$k])  
   $_GET[$_list[$i]][$k]=$_SESSION[$_list[$i]][$k];
$_SESSION['array_to_replace']=array('dir','truba');
Но это для одномерного масива, а если больше = еще цикл и еще и еще
 

Falc

Новичок
Originally posted by NEK
Нет знаешь никогда не слышал и не видел !!!
$_SESSION['egik_v_tumane']='white';
Дело же не в сессиях просто часть данных меняется проходя форму. Если сесиями, то
PHP:
  $_list=$_SESSION['array_to_replace'];
  for($i=0;$i<sizeof($_list);$i++) 
    foreach($_SESSION[$_list[$i]] as $k=>$v)
       if(!ISSET($_SESSION[$_list[$i]][$k])  
   $_GET[$_list[$i]][$k]=$_SESSION[$_list[$i]][$k];
$_SESSION['array_to_replace']=array('dir','truba');
Но это для одномерного масива, а если больше = еще цикл и еще и еще
???
Нахрена ты в $_GET засовываешь свой масив?
Нельзя просто хранить все в сесиях?
Или даже в куках?
 

Фанат

oncle terrible
Команда форума
НЕК, ты можешь объяснить словами, без единой строчки кода, что ты делаешь, и зачем?

Видно, что ты парень способный, в голове есть кое-что.
но всех нас, бывает, заносит не туда.

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

объяснишь?
На примере
 

ForJest

- свежая кровь
NEK, если тебе нужно поменять данные или еще что, что тебе мешает сделать:
$_SESSION['array']['source'] = $MyArray;
В самом начале. Потом каждая форма заносит результат изменений в свое место
$_SESSION['array']['form1'] = $Form1Array;
$_SESSION['array']['form2'] = $Form2Array;

Единственное разумное применение в GET я пока для себя определил - это организация сортировок/выборок данных - чтобы пользователь мог в один момент времени открыть в разных окнах разные отчеты.
Но и в этом случае можно использовать сессии - наример указывать просто номер поискового условия script.php?search=20, например.
 

Falc

Новичок
Originally posted by ForJest
Единственное разумное применение в GET я пока для себя определил - это организация сортировок/выборок данных - чтобы пользователь мог в один момент времени открыть в разных окнах разные отчеты.
Но и в этом случае можно использовать сессии - наример указывать просто номер поискового условия script.php?search=20, например.
А почему не постом?
Если есть форма то по мойму красивее посылать ее постом:)
 

Фанат

oncle terrible
Команда форума
фалк, если бы формы делались постом "для красоты" там, где это не надо, то никто бы не смог тыкать тебя носом в гугль или яндекс, давая ссылку сразу со строкой запроса.

ForJest
правило двольно давно написал здесь Крейзи, и оно несколько шире твоих выборок.
Все очень просто.
Если данные на сервере меняются, то в интерфейсе используется метод ПОСТ
Если не меняются, то - ГЕТ.
Все очень просто и логично.

Так что, использование сессий для поиска - это громоздко и неэффективно.
 

ForJest

- свежая кровь
Хороший постулат, я запомню.

Так что, использование сессий для поиска - это громоздко и неэффективно.
та ты шо?
А тягать контекст текущего поиска это эффективно и негромоздко? Номер страницы, текущая сортировка, и 5-6 различных критериев и настроек?
http://phpclub.net/talk/search.php?s=&action=showresults&searchid=92540&sortby=lastpost&sortorder=descending

searchid= это возможно не сессия, но какая разница где хранить?
 

Фанат

oncle terrible
Команда форума
возможно, это сделано для кэширования результатов поиска, не знаю.

но то, что это неоптимально и не юзабельно - это точно.
 

ForJest

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

Фанат

oncle terrible
Команда форума
блин, ну руками я не могу набрать нужную строчку, например.
search.php?search=php&page=15

Хранить в сессии - не универсально.
Яндекс хранит в сессии? А гугль?
Им проще внутри кэшировать результат запроса, прозрачно. Чем заводить сессии.
Я себе закладку поставлю на результат поиска. и через месяц захочу снова зайти.

Если теоретически говорить, то строка запроса не соответствует моему запросу.

Теперь о сессиях.
сделал ты сортировку в одном окне по имени, а в другом окне - по сумме.
обновил в первом - а оно тоже по сумме!
 

ForJest

- свежая кровь
С закладками согласен - для сайтов общедоступного пользования это неприменимо. Но для сайтов, требующих авторизации, по-моему вполне применимо. Я на 1 сайте попробовал - покатило и все счастливы. Правда там было схоранение "любимых" запросов еще.
сделал ты сортировку в одном окне по имени, а в другом окне - по сумме.
обновил в первом - а оно тоже по сумме!
А кто мешает каждый раз присваивать новый идентификатор?
был search=21, стал search=22. В том окне осталась 21-я, в этом стала 22-я. Причем никогда не произойдет пересечения, так как массив всегда находится в одном месте и его размер известен.
Преимущетсва - ты всегда имеешь black box - юзер не может изменить параметры поиска, кроме как пользуюясь интерфейсом. Каждый раз нужно проверять только одну часть параметров, потому как только эта часть меняется. Допустим изменилась страница - проверили страницу. Изменилась сортировка - сортировку.
 

Фанат

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

ForJest

- свежая кровь
Не - мне просто нужен оппонент. С самим собой легче договориться.
 

NEK

Guest
Всем спасибо, только приехал !!!!!
А насчет url_serialize то там просто требовалось (загнали ур...ды) java-вой выбирать по формам, а потом отправлять на сервер. Проще было через
$_GET. Все давно зделал !!!!
 
Сверху