CakePHP: Как создать страницу профиля пользователя

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

Меня смущает необходимость таблицы профилей, теперь, думаю, она нам не понадобится? мы можем просто заполнить данные, используя некоторую логику PHP на странице, которую мы создаем как profile.ctp?

Это сбивает с толку, я следил за этим http://book.cakephp.org/#!/view/1041/hasOne и создал таблицу профиля с некоторыми полями, которые есть в моей таблице пользователей, а затем с внешним ключом с именем user_id. Я проверил, что модель пользователя и профиля правильно определены в отношениях. У меня это в модели профиля:

var $belongsTo = array(
        'User' => array(
            'className' => 'User',
            'foreignKey' => 'user_id',
            'conditions' => '',
            'fields' => '',
            'order' => ''
        )

и это в модели пользователя:

var $hasOne = 'Profile'; 

Когда я просматриваю свой профиль / указатель, есть имена полей без каких-либо записей. Это пустой набор. Я думал, это должно было извлекать данные из таблицы пользователей ??

Как лучше всего создать страницу профиля для существующих пользователей .. и предстоящих регистраций?


person George Leow    schedule 05.02.2011    source источник


Ответы (1)


Вам не нужна таблица профилей (если у вас уже есть таблица пользователей с их информацией).

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

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

person Oleksandr Kruk    schedule 05.02.2011
comment
да, спасибо, это именно то, что я думал сделать после часа, пытаясь выяснить таблицу профиля, как объяснялось в моем вопросе. но, как вы сказали, безопасность ... как это повлияет? предполагая, что я делаю его общедоступным веб-сайтом ... (знаете ли вы, что некоторые сценарии, которые уже работают со сравнением идентификатора пользователя, а затем отображают его как страницу своего профиля? ссылки / кое-что в уме, так что могу сослаться ..) спасибо. - person George Leow; 05.02.2011
comment
и мне интересно, по какой ссылке я разместил свой вопрос? выглядит красиво ... Я решил использовать это ... хотя теперь я думаю, что это не так логично. Например, учитывая, что у нас есть таблица пользователей и профили .. очень многообещающе. . . - person George Leow; 05.02.2011
comment
Я собираюсь согласиться с тем, что вы предложили. спасибо, а не могли бы вы объяснить, почему проблема безопасности? Использую AUTH для проверки .. в чем проблема? только пользователь может редактировать свои собственные материалы. - person George Leow; 06.02.2011
comment
Auth в порядке. Помимо этого, поскольку вы, вероятно, будете использовать базу данных не только для аутентификации, но и для других целей, вы должны быть уверены, что проверили все вводимые пользователем данные. CakePHP предлагает средство очистки данных (book.cakephp.org/#!/view/ 1183 / Data-Sanitization) Предлагаю вам проверить эту страницу. Кроме того, если вы впервые делаете общедоступный веб-сайт, ознакомьтесь с некоторыми материалами о SQL-инъекции и межсайтовом запросе. Удачи ;) - person Oleksandr Kruk; 07.02.2011
comment
здорово-здорово. Спасибо, Крук. Это ответило на мой вопрос. - person George Leow; 09.02.2011