У меня есть сайт с вопросом и ответами (что-то вроде SO) . Я хочу реализовать это условие:
Условие: Пользователь может дать право голоса, у которого есть не менее 125 репутаций.
- Есть ли какой-либо вред при запуске session_start () несколько раз по мере создания запроса на страницу (в php)?
- Как исправить устаревшую проблему session_register ()?
- Непоследовательная сериализация сеанса на серверах
- Сессия не сохраняется при переходе с ssl на non-ssl
- «Безопасный» параметр в session_set_cookie_params
Ну, я могу реализовать это условие двумя способами:
Сторона сервера. Когда пользователь входит в систему, я получаю его репутацию и устанавливаю ее в $_SESSION['rep']
. Затем используйте его перед комментированием
if( $_SESSION['rep'] >= 125 ) { /* can vote */ } else { /* cannot vote */ }
Сторона базы данных: я могу использовать триггер и проверять его так:
IF ( SELECT 1 FROM user WHERE id = new.user_id AND rep < 125) THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = "cannot vote"; END if;`
Я тестировал их обоих, и они тоже работают. Теперь я хочу знать, какой из них более распространен и стандартен?