技术猜想-CakePHP/NginX/Corona/Erlang 用户注册登录

用户注册登陆

首先,我们应用xampp的phpMyAdmin, 先建立一个名为baidu的数据库, 注意:MySQL charset为UTF-8 Unicode,Collation为utf8_unicode_ci. 这样做的目的是确保中文的显示正常.


运行 SQL query/queries:
CREATE TABLE `users` (
`id` int(11) NOT NULL auto_increment,
`username` varchar(255) NOT NULL,
`password` varchar(32) NOT NULL,
`first_name` varchar(255) NOT NULL,
`last_name` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
)

INSERT INTO 'users'('id','username','password',`first_name`,`last_name`)
VALUES(NULL,'eric','123','eirc','zou');


这样我们就有一个名为users的数据库表单,主键为id。主键的目的是为了与别的相关数据库表单进行关联。
这里的密码没有进行md5等方法处理,加密,稍后在做处理。这里的表单名users的"s"是为了符合cake的命名空间。

然后我们就可以书写我们的cake代码,用来实现我们的登陆功能。这里,可以采用先前介绍的bake.php来快速建立,也可以手写输入。
对于,m-v-c模型来说,我们先要建立model,打开我们的Zend或者其他编辑器,找到app文件夹下面的model,建立一个users.php
<?php
class User extends AppModel
{
var $name = 'User';
}
?>
然后在controller文件夹中建立users_controller.php,这里的users就是符合了数据库的命名空间。
<?php                                          
class UsersController extends AppController
{
function login()
{

$this->set('error', false);

if (!empty($this->data))
{
//这里我们就从用户输入的信息与数据库中的users表单进行对比

$someone = $this->User->findByUsername($this->data['User']['username']);


      //变量$someone被附值为用户数据,然后对比用户输入的与数据库中的值是否一致
if(!empty($someone['User']['password']) && $someone['User']['password'] == $this->data['User']['password'])
{

$this->Session->write('User', $someone['User']);


         //然后我们将用户信息包存在session中,然后跳转到/index

$this->redirect('/clients');
}
// Else, they supplied incorrect data:
else
{
$this->set('error', true);
}
}
}

function logout()
{
//如果用户单击登出,那么触发这个行为,我们需要这里清楚session信息
$this->Session->delete('User');

//我们可以用下面的redirect指向到用户登出后的页面

$this->redirect('/');
}
}
?>                                             
这样我们的核心的控制器就写好了,他将比较从view文件输入的信息与model文件取得信息,完成整个流程。

下面我们书写最后的view文件来完成这个功能的实现

然后在views文件夹下创建users文件夹,然后在建立login.thtml
thtml 是cake里面的一个模版的文件的后缀,用来简便开发
<?if ($error): ?>
<p>The login credentials you supplied could not be recognized. Please try again.</p>
<? endif; ?>

<form action="<?php echo $html->url('/users/login'); ?>" method="post">
<div>
<label for="username">Username:</label>
<?php echo $html->input('User/username', array('size' => 20)); ?>
    
</div>
<div>
<label for="password">Password:</label>
<?php echo $html->password('User/password', array('size' => 20)); ?>
</div>
<div>
<?php echo $html->submit('Login'); ?>
</div>
</form>

原文:http://hi.baidu.com/xeboy/item/83f727d956794cf792a97459

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值