Я занимаюсь веб-разработкой с помощью CakePHP 1.3.7.Все идет хорошо, и мне это нравится, но я только столкнулся с проблемой (вероятно, из-за недостатка знаний), которую я не могу понять, как исправить.
Это моя проблема:
На веб-сайте есть типичная область «Управление моей учетной записью», где пользователи могут получить доступ только после входа в систему. В этой области есть ссылка, которая вызывает действие в том же «пользовательском» контроллере, называемом «edit_items.Поэтому, когда пользователь переходит на edit_items , действие получает в качестве параметра id пользователя (что-то вроде domain.com/users/edit_items/45, где 45 - идентификатор пользователя),и показывает информацию в форме.Проблема возникает, если я перехожу прямо в адресную строку браузера и меняю это значение 45 для идентификатора любого другого пользователя, тогда также отображается информация об этом другом пользователе, даже если этот пользователь не вошел в систему. Это, очевидно, большая безопасностьПроблема.
Я пытался избежать передачи идентификатора пользователя в качестве параметра и получения его из компонента Auth (который я использую) с помощью $ this-> Auth-> User ('ID ') .По какой-то причине я могу прочитать информацию о зарегистрированном пользователе в форму, но когда я пытаюсь сохранить изменения в форме, я получаю сообщение об ошибке, как будто действие save не выполнено, и у меня нетразгадать причину.
Есть ли другой способ избежать моей проблемы?Или выяснить, почему save возвращает ошибку?
Спасибо!
EDIT
ТАК из-за чего проблемапроверка заключается в следующем: когда пользователь заполняет форму для создания нового элемента, появляются определенные поля, некоторые из них с примененными правилами проверки.Однако, когда пользователь возвращается для редактирования элемента, редактируются не все поля, только некоторые.Возможно ли, что, поскольку некоторые поля, требующие проверки при создании элемента, недоступны при редактировании, это вызывает ошибку?Как можно избежать этого?Могу ли я изменить правила проверки только для действия edit ?
Пример того, что происходит: при создании элемента одним из полей является item_name , которое имеет некоторыепроверка применяется к нему.При редактировании элемента его имя не может быть изменено, поэтому оно не отображается в форме редактирования.Я считаю, что это может быть причиной ошибки, может быть, потому что item_name отсутствует?