LINUX.ORG.RU
ФорумTalks

[PHP] Развитие

 


0

1

Я стал замечать, что версии PHP стали выходить как-то медленнее и скуднее. http://www.ohloh.net/p/php намекает, что

Decreasing year-over-year development activity

Как считают аналитики ЛОР'а, почему столь популярный продукт начал загибаться?

Ответ на: комментарий от Tark

>Зачем заливать в куки через яваскрипт?
В в твоем случае ты говорил о галочке «remember me».
Её нужно устанавливать в кукисы когда пользователь по ней кликнул.

Не вижу в этом никаких плюсов перед стандартной передачей Set-Cookie в http заголовке от сервера клиенту.

Здесь даже спорить не буду, на вкус и цвет, я оспариваю саму идею хранить что то в куках.

winddos ★★★
()
Ответ на: комментарий от Tark

В том же js работа с ними, а конкретно чтение, реализована менее удобна например.

Да ну? Вот так, например, проверяем: есть ли кука с идентификатором сессии:

var txt = document.cookie;
if(txt.length==0 || txt.indexOf('KEY')<0){
  ключа нет
}else{
  ключ есть
}
А так - осуществляем выход (после отправки POST-сообщения на сервер для удаления сессии из БД):
        var d = new Date(1), i;
        var str = "KEY=; expires="+d.toGMTString()+"; path=";
        document.cookie = str + document.location.pathname;
        for(i = 0; i < c_path.length; i++){
                document.cookie = str + c_path[i];
        }
Что же тут сложного-то?

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от winddos

В в твоем случае ты говорил о галочке «remember me». Её нужно устанавливать в кукисы когда пользователь по ней кликнул.

А вот и нет: если «галочка» не отмечена, кука устанавливается на время сеанса, а если ее отмечают, то на какой-то длительный срок. Вот и вся разница.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от winddos

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

Tark ★★
()
Ответ на: комментарий от Tark

>Запоминание пользователя на сайте
Выше.

сохранение данных между сессиями о том, показывать ли окошки с хелпом

Эти данные должна храниться в БД в случае системы с авторизацией.
В случае с системой без авторизации - ок, пусть.

для анонимных пользователей

Чем тут не подходят сессии?

сохранение токенов для API когда работа с ним идет и через php, и через js, реализация той же корзины на стороне клиента.

Нераспарсил.
Что мешает отдавать токен прямо в коде страницы?
Согласен, это не уместно при статичном html, потому читайте ниже.

PS: Поясню свою позицию.
Куки разрабатывались как клиент-серверная технология, для размещения в них информации которые надо знать и клиенту и серверу (в нашем случае это номер сессии).
Сейчас в них пихают все подрят - имя пользователя для отображения в интерфейсе, пароли, логины, 1500 настроек сайта.
Я считаю что это очень и очень плохая практика.

Поставлю конкретный вопрос:
Сейчас поддержка localstorage существует вроде как во всех браузерах (даже в 8 осле).
Зачем продолжать начиловать куки?

winddos ★★★
()
Ответ на: комментарий от winddos

>Её нужно устанавливать в кукисы когда пользователь по ней кликнул.
Так вся суть то в том, что механизм будет использоваться тот же, COOKIE будет постоянно присутствовать в хидере запроса от клиента. Только лишний костыль выходит.

Tark ★★
()
Ответ на: комментарий от Eddy_Em

Что же тут сложного-то?

Повеселил. Очень напомнило gtk туториалы на С: «сейчас мы с вами набросаем небольшой helloworld», — и хренакс, портянка бойлерплейта на 100 строк.

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

baverman ★★★
()
Ответ на: комментарий от Eddy_Em

Я про чтение переменной из cookie. Разница есть между $_COOKIE['key'] и выдиранием нужного значения из строки.

Tark ★★
()
Ответ на: комментарий от Tark

Так там-то функция на 3-4 строчки! Один раз напишите, а потом пользуйтесь ею во всех своих проектах. В чем проблема-то?

// я, кстати, свою библиотечку для работы с CGI именно из-за того начал делать, что задолбался из проекта в проект тянуть куски постоянно употребляющихся исходников - решил оформить их в динамическую библиотеку. И с JS тоже библиотечку сделать.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от winddos

>Чем тут не подходят сессии?
Тем, что хранить тучу сессий от анонимов на сервере постоянно смысла нет особого. Это раз. Два - тем, что эти данные нужны еще и из javascript.

Что мешает отдавать токен прямо в коде страницы?

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

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

Я считаю что это очень и очень плохая практика.


Я понимаю, что хотел сказать winddos. Он имел в виду то, что не стоит хранить в куках то, что можно хранить в сессии, потому как куки генерируют трафик при каждом HTTP запросе.


Я как видите тоже.

Зачем продолжать начиловать куки?

Куки разрабатывались как клиент-серверная технология, для размещения в них информации которые надо знать и клиенту и серверу.

Tark ★★
()
Ответ на: комментарий от Tark

>Так вся суть то в том, что механизм будет использоваться тот же, COOKIE будет постоянно присутствовать в хидере запроса от клиента.
Ок:
http://www.linux.org.ru/forum/talks/6405370?lastmod=1308825956169#comment-641...
Вопрос снизу.

winddos ★★★
()
Ответ на: комментарий от Tark

Здесь сорри, видимо не туда ссылку скопировал:

Сейчас поддержка localstorage существует вроде как во всех браузерах (даже в 8 осле).
Зачем продолжать насиловать(fix) куки?

winddos ★★★
()
Ответ на: комментарий от Tark

Ну, лично я не вижу смысла учить PHP, если все можно решить более простыми средствами, да еще и попутно поупражняться в программировании :)

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от winddos

>Зачем продолжать начиловать куки?

Куки разрабатывались как клиент-серверная технология, для размещения в них информации которые надо знать и клиенту и серверу.

А localstorage только для клиента.

Tark ★★
()
Ответ на: комментарий от Tark

Ладно, я даже продолжать не буду.
Данные нужные серверу должны хранится на сервере (пусть они передаются один раз при авторизации).
Данные клиента - на клиенте. (локалсторадж)
Они не должны тягаться каждый при каждом запросе туда и обратно.

Запросы должны ходить по _GET/_POST, а не в смеси с _COOKIE.
С моей точки зрения работа с куками в скрипте (и тем более обработка данных из двух источников) это говнокод и лишнее место для рождения дыр

winddos ★★★
()
Ответ на: комментарий от winddos

Ок. Допустим я согласился. Как вы думаете реализовать в этом случае корзину для покупки в интернет магазине, чтобы при переходе между страницами сервер выдавал страницы с товарами сочетающимися с тем, что лежит в корзине, и чтобы при добавлении товара в корзину не приходилось каждый раз дергать сервер?

Tark ★★
()
Ответ на: комментарий от Tark

А зачем вы ставите абсурдные условия?

и чтобы при добавлении товара в корзину не приходилось каждый раз дергать сервер?


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

winddos ★★★
()
Ответ на: комментарий от winddos

Встречаются сайты с более удобным интерфейсом, чем amazon. Но да, условия несколько жестковаты, я сам так его не использую.
Но почему-то тот же youtube(сохранение списка просмотренных видео) и gmail тоже использует cookie для некоторых вещей. Да и яндекс использует куки для функции «запомнить меня», а не сессии, twitter использует куки для идентификации гостей без авторизации, facebook использует их для хранения локали и даже amazon использует для хранения токенов сторонних API тоже cookie.

Tark ★★
()
Ответ на: комментарий от Tark

Все описанные вами сервисы (кроме facebook, да и он с большой натяжкой) написаны не на PHP.
Яндекс не котируется, ибо об их сервисах я не очень хорошего мнения.

Своё мнение я высказал и достаточно его обосновал, а спорить далее не собираюсь. :)

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

winddos ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.