Перейти к содержимому

MOAB

- - - - -

Ссылка на сравнение в интернет-магазине


  • Войдите, чтобы ответить
Сообщений в теме: 15

#1 protector

protector

    Почетный

  • Основатель
  • PipPipPipPipPip
  • 3 660 сообщений
2 255
  • ИзСанкт-Петербурга

Отправлено 26 Май 2021 - 11:15

Захотелось мне на странице сравнения товаров добавить ссылку, которой можно было бы делиться с другими: на другом компе по ссылке открываются те же товары.
Я вижу реализацию двумя вариантами.
1) в Гет-параметрах передавать id товаров добавленных в сравнение.
Минус. Если что-то изменится, то по ссылке или F5 товары будут прежние. Наверное, это неудобно пользователям.
2)
В гет-параметрах передавать зашифрованный номер сессии. Тогда если что-то добавляем или удаляем из сравнения, то на другом компьютере тоже изменится. По идее это удобнее. Если не ошибаюсь, то так реализовано в Яндекс.Маркете (не факт, что передают номер сессии, но если кто-то удаляет из сравнения, то по ссылке будет продукция без этого товара).
Минус. Вопрос безопасности. На сколько безопасно в гет-параметре передавать сессию? Как её шифрировать и потом дешифрировать?

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

Какой вариант лучше? Или посоветуете что-нибудь своё?

#2 hungryforester

hungryforester

    PROGRAMMIST

  • Старая гвардия
  • PipPipPipPipPip
  • 1 859 сообщений
593
  • ИзСССР

Отправлено 26 Май 2021 - 14:41

По-взрослому - "Сравнение" хранить в отдельных таблицах и передавать его id. По мере устаревания чистить от ненужных "сравнений".
Свистка не видит? Значит, дров нету!

#3 protector

protector

    Почетный

  • Основатель
  • PipPipPipPipPip
  • 3 660 сообщений
2 255
  • ИзСанкт-Петербурга

TC Отправлено 26 Май 2021 - 15:19

Просмотр сообщенияhungryforester (26 Май 2021 - 14:41) писал:

По-взрослому - "Сравнение" хранить в отдельных таблицах и передавать его id. По мере устаревания чистить от ненужных "сравнений".
"Сравнение" уже хранится в отдельной таблице: если добавлено 5 товаров, то 5 строк в базе для данного пользователя.
То есть вариант 1? В ссылке передавать id товаров, добавленные в сравнение? Или какие id?

#4 hungryforester

hungryforester

    PROGRAMMIST

  • Старая гвардия
  • PipPipPipPipPip
  • 1 859 сообщений
593
  • ИзСССР

Отправлено 26 Май 2021 - 15:24

Просмотр сообщенияprotector (26 Май 2021 - 15:19) писал:

"Сравнение" уже хранится в отдельной таблице: если добавлено 5 товаров, то 5 строк в базе для данного пользователя.
То есть вариант 1? В ссылке передавать id товаров, добавленные в сравнение? Или какие id?
Конвертировать "моё сравнение" в "мои сравнения", ну если лениво - то надо id пользователя передавать, только лучше от греха как-то примитивно зашифровать его.

В смысле, https://сайт/compare?goods=[userId] - получаете страницу с 5 товарами.
Свистка не видит? Значит, дров нету!

#5 c4e8ece0

c4e8ece0

    Ниггер на лошади

  • Участник
  • PipPipPipPipPip
  • 5 285 сообщений
6 806
  • Изцирка

Отправлено 26 Май 2021 - 15:29

1. Человек накидывает товары в сравнение
2. Нажимает на кнопку "Показать другу/Поделиться списком"
3. Товары из сравнения переносятся в какую-то корзину/букет (хеш от соли с ID) и формируется ссылка для просмотра этого букета
4. При обновление списка переходим на п. 2 и получаем новый букет
0. Закрываем все кнопки от роботов
"Они не могут ничего, у них лапки котят"

#6 hungryforester

hungryforester

    PROGRAMMIST

  • Старая гвардия
  • PipPipPipPipPip
  • 1 859 сообщений
593
  • ИзСССР

Отправлено 26 Май 2021 - 15:55

Просмотр сообщенияc4e8ece0 (26 Май 2021 - 15:29) писал:

4. При обновление списка переходим на п. 2 и получаем новый букет
зачем новый?.. чтобы больше потом чистить?
Свистка не видит? Значит, дров нету!

#7 c4e8ece0

c4e8ece0

    Ниггер на лошади

  • Участник
  • PipPipPipPipPip
  • 5 285 сообщений
6 806
  • Изцирка

Отправлено 26 Май 2021 - 16:43

Просмотр сообщенияhungryforester (26 Май 2021 - 15:55) писал:

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

#8 protector

protector

    Почетный

  • Основатель
  • PipPipPipPipPip
  • 3 660 сообщений
2 255
  • ИзСанкт-Петербурга

TC Отправлено 27 Май 2021 - 13:55

Просмотр сообщенияc4e8ece0 (26 Май 2021 - 15:29) писал:

4. При обновление списка переходим на п. 2 и получаем новый букет
То есть при обновлении списка пользователь должен заново (второй раз) нажать ссылку "поделиться с другом"? Не все догадаются, что нужно второй раз нажать кнопку.

#9 c4e8ece0

c4e8ece0

    Ниггер на лошади

  • Участник
  • PipPipPipPipPip
  • 5 285 сообщений
6 806
  • Изцирка

Отправлено 27 Май 2021 - 21:54

Просмотр сообщенияprotector (27 Май 2021 - 13:55) писал:

То есть при обновлении списка пользователь должен заново (второй раз) нажать ссылку "поделиться с другом"? Не все догадаются, что нужно второй раз нажать кнопку.
Ну это в принципе стрёмный функционал, да. Непонятно что нужно тем, кто таким делится. По своему опыту - нужны таки снимки. И можно же добавить красных плашек, что есть более актуальная версия... вопрос без ответа, короче.
"Они не могут ничего, у них лапки котят"

#10 protector

protector

    Почетный

  • Основатель
  • PipPipPipPipPip
  • 3 660 сообщений
2 255
  • ИзСанкт-Петербурга

TC Отправлено 28 Май 2021 - 12:02

Просмотр сообщенияc4e8ece0 (27 Май 2021 - 21:54) писал:

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

#11 KaSH

KaSH

    Инструктор по счастью

  • Основатель
  • PipPipPipPip
  • 1 359 сообщений
2 463
  • Изморя и с гор

Отправлено 31 Май 2021 - 00:21

Просмотр сообщенияprotector (26 Май 2021 - 11:15) писал:

Захотелось мне на странице сравнения товаров добавить ссылку, которой можно было бы делиться с другими: на другом компе по ссылке открываются те же товары.
1) в Гет-параметрах передавать id товаров добавленных в сравнение.
Минус. Если что-то изменится, то по ссылке или F5 товары будут прежние. Наверное, это неудобно пользователям.
2)
В гет-параметрах передавать зашифрованный номер сессии. Тогда если что-то добавляем или удаляем из сравнения, то на другом компьютере тоже изменится. По идее это удобнее. Если не ошибаюсь, то так реализовано в Яндекс.Маркете (не факт, что передают номер сессии, но если кто-то удаляет из сравнения, то по ссылке будет продукция без этого товара).
Минус. Вопрос безопасности. На сколько безопасно в гет-параметре передавать сессию? Как её шифрировать и потом дешифрировать?
Я всегда за простой вариант.
Если нужно передавать список, который вот такой какой есть - сунуть в get-параметры (хотя если совсем правильно, то в чпу, какой-нибудь адрес https://site.ru/срав...314-15161-71819 ), где цифирки - id-товаров.
Если нужно чтобы был именно список пользователя, то при хранить сравнение пользователя в БД, и передавать какой-то уникальный ID записи со сравнением (или ID пользователя, хрен знает как кто извращается с хранением). Сессию я бы не предавал ни в каком случае, никак и никогда. Можно все это начинать хранить только у тех, кто поделился, чтобы таблица не разрасталась. И чистить таблицу по прошествии какого-то времени.
И тот и другой вариант слишком непохожи, и имеют свои нюансы. С точки зрения практического использования, ИМХО, первый вариант для описанных целей лучше. Можно и то и другое его модифицировать и в хвост и в гриву, но суть та же.

Про то что все это лучше закрыть от индексации роботами и в robots.txt, и указав канонической правильную страницу (какую? да хз, по обстоятельствам), думаю, напоминать излишне :)
Серьезные сайты размещаю на VPS, простые в SprintHost и в TimeWeb. Старые, более ненужные мне сайты я продаю на Телдери. Бухгалтерию и отчеты в налоговую за меня делает Эльба.

#12 protector

protector

    Почетный

  • Основатель
  • PipPipPipPipPip
  • 3 660 сообщений
2 255
  • ИзСанкт-Петербурга

TC Отправлено 31 Май 2021 - 13:14

Просмотр сообщенияKaSH (31 Май 2021 - 00:21) писал:

Если нужно чтобы был именно список пользователя, то при хранить сравнение пользователя в БД, и передавать какой-то уникальный ID записи со сравнением (или ID пользователя, хрен знает как кто извращается с хранением).
Пока что склоняюсь к передаче id юзера. У меня не id, но суть та же.
А id юзера безопасно передавать?

Просмотр сообщенияKaSH (31 Май 2021 - 00:21) писал:

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

И еще вопрос
В результате один человек передал ссылку со сравнением другому человеку. Стоит ли этому второму человеку давать разрешение на удаление товаров из сравнения?
Вопрос с точки зрения удобств для пользователя.

#13 c4e8ece0

c4e8ece0

    Ниггер на лошади

  • Участник
  • PipPipPipPipPip
  • 5 285 сообщений
6 806
  • Изцирка

Отправлено 31 Май 2021 - 17:02

Просмотр сообщенияKaSH сказал:

Если нужно передавать список, который вот такой какой есть - сунуть в get-параметры (хотя если совсем правильно, то в чпу, какой-нибудь адрес https://site.ru/срав...314-15161-71819 ), где цифирки - id-товаров.
Люблю тебя :wub:
"Они не могут ничего, у них лапки котят"

#14 KaSH

KaSH

    Инструктор по счастью

  • Основатель
  • PipPipPipPip
  • 1 359 сообщений
2 463
  • Изморя и с гор

Отправлено 01 Июнь 2021 - 13:35

Просмотр сообщенияprotector (31 Май 2021 - 13:14) писал:

Пока что склоняюсь к передаче id юзера. У меня не id, но суть та же.
А id юзера безопасно передавать?


Сравнение и так хранится в базе. Можно только добавить столбец с добавкой в урл, по которой искать нужные товары. Но как-то не нравится эта идея.

И еще вопрос
В результате один человек передал ссылку со сравнением другому человеку. Стоит ли этому второму человеку давать разрешение на удаление товаров из сравнения?
Вопрос с точки зрения удобств для пользователя.
Я не люблю когда передают ID. У юзверя может быть ID - цифирь в БД. Но еще у него можно сделать один или несколько уникальных хешей (поле в таблице, уникальный ключ, поиск по нему молниеносный), и передавать их. Никто не знает ни порядковый номер, и не угадать перебором, ибо строку даже в 8 символов (а если в 16? а если в 32? :) ) хрен подберешь.
Пользователю пофиг, он делится ссылкой.

А вот по второму вопросу - он вообще не простой. Можно сделать так, чтобы при прохождении по ссылке оно добавляло товары в сравнение пользователя (по доп запросу, хотите добавить эти товары в СВОЙ список), который перешел, например, и пусть уже у себя делает что хочет, и потом делится своей ссылкой. И т.п.
Но чужое сравнение редактировать - это как-то не але. Опять же, если на сайте есть ЛК, то вообще нет смысла делиться самому с собой ссылью, оно и так определяется, если юзверь авторизрован. А чужому человеку давать редактировать чей-то список... не, реально, по мне это неправильно. Тем более, что тут есть ряд нюансов, один у себя добавил, другой удалил, и т.п. А учитывая что страница уже загружена, нужно на это вешать постоянные проверки что у кого изменилось.
Но, тут смотря какой смысл вообще во все это вклдадывается.
Я бы сам остановился на гет-параметрах и успокоился :) Ибо всегда можно отправить другую ссылку, если что-то поменялось.
А то начинается какое-то построение Гугл-доков, с одновременным редактированием несколькими пользователями. А это уже сложно, ибо там много коллизий может случиться.

Просмотр сообщенияc4e8ece0 (31 Май 2021 - 17:02) писал:

Люблю тебя :wub:
:drinks:
Серьезные сайты размещаю на VPS, простые в SprintHost и в TimeWeb. Старые, более ненужные мне сайты я продаю на Телдери. Бухгалтерию и отчеты в налоговую за меня делает Эльба.

#15 protector

protector

    Почетный

  • Основатель
  • PipPipPipPipPip
  • 3 660 сообщений
2 255
  • ИзСанкт-Петербурга

TC Отправлено 02 Июнь 2021 - 11:33

Просмотр сообщенияKaSH (01 Июнь 2021 - 13:35) писал:

А учитывая что страница уже загружена, нужно на это вешать постоянные проверки что у кого изменилось.
Но, тут смотря какой смысл вообще во все это вклдадывается.
Я бы сам остановился на гет-параметрах и успокоился :) Ибо всегда можно отправить другую ссылку, если что-то поменялось.
А то начинается какое-то построение Гугл-доков, с одновременным редактированием несколькими пользователями. А это уже сложно, ибо там много коллизий может случиться.
Да.. как-то сложно получается с логикой и удобством. Не нужно давать возможность редактировать чужой список сравнения.
Убедили)
Тогда получается в гет передаю некий хеш параметр, привязанный к пользователю. По нему строю страницу со сравнением.
Отлично!
:smile9:

#16 c4e8ece0

c4e8ece0

    Ниггер на лошади

  • Участник
  • PipPipPipPipPip
  • 5 285 сообщений
6 806
  • Изцирка

Отправлено 02 Июнь 2021 - 23:19

Просмотр сообщенияprotector сказал:

Тогда получается в гет передаю некий хеш параметр, привязанный к пользователю. По нему строю страницу со сравнением.
Нет же! У Налика самое элегантное решение, при этом ничего не надо хранить (если только список самого пользователя в сессии, например).
"Они не могут ничего, у них лапки котят"



Похожие темы


Количество пользователей, читающих эту тему: 2

0 пользователей, 1 гостей, 0 анонимных


    Google


© 2021 SMO&SEO форум «WEBIMHO» — продвижение и создание сайтов, интернет-маркетинг

По вопросам рекламы на форуме и цены на рекламу
Все материалы SEO форума разрешены к копированию только с установкой гиперактивной ссылки на webimho.ru,
тем, кто этого не сделает, мы оторвем руки и ноги и поменяем местами,
а когда выйдем из тюрьмы, опять оторвем и опять поменяем.


Россия, г. Москва
  • Top.Mail.Ru

Мы в соцсетях: twitter | вконтакте | facebook | livejournal