Показать сообщение отдельно
  #12 (permalink)  
Старый 23.08.2017, 04:43
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от sanya300
зашел в свой кабинет, затем перешел на страницу одного из объявлений, жмакнул изменить, изменения сохранились, объявление поднялось, а редиректом пользователя перекинуло на страницу с самим объявлением (редирект есть). Если же пользователь вернется на страницу с редактированием того же объявления, то кнопка будет заблокирована. В тоже время другие свои объявления поднять и отредактировать он сможет, но только по одному разу.
Если "перешел на страницу одного из объявлений", то при каждом таком переходе запрос:

SELECT *, IF(date_field + INTERVAL 20 HOUR >= NOW(), 1, 0) top FROM table_advert WHERE advert_id = 999 AND user_id = 999


где получаем всю информацию об объявлении по его ID, плюс получаем разрешение под ключом top. Далее в выводе всей этой инфы определяем вывод кнопки/поля формы и т.п., которое только если разрешено ключом top этого запроса:

if($row->top) echo '<input ...>';


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