我在CakePHP中忙於一段時間的登錄系統。
我有一個網站,人們可以加入並登錄。 我想要的是,如果用戶第一次登錄,用戶必須執行必須完成的信息的某些步驟。
我正在考慮在我的數據庫中創建一個活動的字段1或0. 當用戶繼續執行這些步驟時,配置文件已被激活,並且從不顯示第一次登錄頁面。
如歡迎「用戶」, 我的個人資料信息 - >與我們聯繫 - >有關應用程序
信息 - >激活賬戶
任何人都可以給我一些片段來做到這一點。
非常感謝!CakePHP首次登錄
<?php
class UsersController extends AppController {
var $name = 'Users';
function beforeFilter() {
parent::beforeFilter();
// Rights for the admin users
$this->Auth->mapActions(
array(
'create' => array('admin_add'),
'read' => array('index', 'admin_index')
)
);
// Everybody can login
$this->Auth->allow(array('login'));
// Apply ucfirst (Capital) & strolower (small text) to the username
if (isset($this->data['User']['username'])) {
$this->data['User']['username'] = ucfirst(strtolower($this->data['User']['username']));
}
}
function login() {
// Check if the user is logged in correctly, then update the date/time from this login
if ($this->Auth->User()) {
// Update the login date
$this->User->save(array(
'id' => $this->Session->read('Auth.User.id'),
'last_login' => date('Y-m-d h:i:s')
));
// Get the group name
$group = $this->User->Group->findById($this->Session->read('Auth.User.group_id'));
// Set the redirect if the user has logged in as Administrator
if ($group['Group']['name'] == 'Admins') {
$this->redirect(array('controller' => 'posts', 'action' => 'index'));
}
}
// Always redirect the user to the homepage
// $this->redirect(array('controller' => '', 'action' => ''));
pr($this->Session->read('Auth'));
}
function logout() {
$this->redirect($this->Auth->logout());
}
function admin_index() {
echo 'It Work's';
}
感謝您的詳細解釋!這真的有助於這個系統的開發。 我不知道從哪裏開始我的代碼。 我應該創建一個具有這些功能的新控制器嗎? 我創建了一個存儲每個步驟的新表。 然後將這些步驟鏈接到用戶表中的user_id 有沒有人創建此係統的代碼片段..或anny示例。 曼尼謝謝! – NDeveloper 2011-04-29 14:54:44
有一個名爲AppController的主控制器http://book.cakephp.org/view/957/The-App-Controller,您可以使用它來放置所有控制器通用的代碼。如果你按照文檔上的Auth教程,你應該已經擁有了你自己的AppController和beforeFilter(),你只需要檢查用戶是否連接並且他的「激活」狀態。我不知道是否有一些片段或代碼來完成這個「步驟」的事情,看起來你需要編碼=)乾杯! – pleasedontbelong 2011-04-29 15:01:11