dazle
@dazle
Хороший электрик, но в душе программист

Можно ли сделать бан лист для сайта, чтобы другие пользователи не могли отправлять личные сообщения вам?

Могу ли я создать одно поле у каждого пользователя и заносить туда все id пользователей, которые в бане, а потом проверять при отправке личных сообщений, есть ли они у вас в бане. Если есть у вас бане, то не отправлять сообщение.
Проблема в том, как заносить все id в одно поле, а потом это поле проверять на присутствие этого id. Напишите, кто сталкивался с занесением многих значений в одно поле таблицы и как сделать нахождение этого значения из многих в одном поле.
Если есть другие варианты бана, тоже пишите.
  • Вопрос задан
  • 124 просмотра
Решения вопроса 1
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
В таблице пользователя добавляем поле: chatOnlyWithFriends: true/false.
Если true - шлём только тем, кто в списке друзей.
Если false - проверяем: кто в бане у пользователя и исключаем их из общего списка. Отправляем всем за исключением забаненных у пользователя.

Таблица банов ("многие-ко-многим"):
id, initUserID, bannedUserID
Проверяете по ней: кто кого забанил и решаете: отправляем или нет.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@granty
Я так понял, он хочет, чтобы каждый пользователь имел свой чёрный список (ban--лист). И мог редактировать его

Гуглите "связь один ко многим". Потребуется отдельная таблица BanList с полями
userID INT      // ID пользователя
bannedID INT    // ID того, кого он забанил

По
SELECT bannedID from BanList WHERE userID='$ID'
можно выбрать ID всех, кого забанил пользователь с userID='$ID'

Используются ID из вашей таблицы реальных пользователей.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Искра Екатеринбург
от 80 000 до 100 000 ₽
Art gorka Санкт-Петербург
от 60 000 ₽
от 40 000 до 60 000 ₽