ThinkPHP之用户注册登录留言完整实例

这篇文章主要介绍了ThinkPHP之用户注册登录留言完整实例,有助于详细了解ThinkPHP的运作流程,需要的朋友可以参考下

 

<?php
class UserAction extends Action{
public function add(){
$user = D( "user" );
$user ->create();
$result = $user ->add();
if ( $result ){
$this ->assign( "jumpUrl" , "__APP__/index/index" );
$this ->success( '注册成功!' );
} else {
//echo $user->getError();
$this ->assign( "jumpUrl" , "__APP__/user/register" );
$this ->error( $user ->getError());
}
}
public function register(){
$this ->display();
}
public function login(){
$this ->display();
}
public function checklogin(){
$username = $_POST [ 'username' ];
$passwd = $_POST [ 'passwd' ];
$user = D( "user" );
//$User->where('id=8')->find();这里的where 语句要注意一下,如果是其他字段的话后面一定要有单引号
$userinfo = $user ->where( "username ='$username'" )->find();
if (! empty ( $userinfo )){
if ( $userinfo [ 'passwd' ] == $passwd ){
Cookie::set( 'userid' , $userinfo [ 'id' ],time()+3600*24);
Cookie::set( 'username' , $username ,time()+3600*24);
Cookie::set( 'lastlogintime' ,time(),time()+3600*24);
$this ->assign( "jumpUrl" , "__APP__/index/index" );
$this ->success( '登陆成功!' );
} else {
$this ->assign( "jumpUrl" , "__APP__/user/login" );
$this ->error( '密码出错,请重新输入!' );
}
} else {
$this ->assign( "jumpUrl" , "__APP__/user/login" );
$this ->error( '用户名不存在!' );
}
}
public function loginout(){
Cookie:: delete ( 'username' );
Cookie:: delete ( 'lastlogintime' );
$this ->assign( "jumpUrl" , "__APP__/index/index" );
$this ->success( '您已经成功退出,欢迎您的下次登录!' );
}
}

IndexAction.class.php页面:

 

<?php
// 本类由系统自动生成,仅供测试用途
class IndexAction extends Action{
public function insert() {   
$content = new ContentModel();
$result = $content ->create();
if (! $result ){
$this ->assign( "jumpUrl" , "__URL__/index" );
$this ->error( $content ->getError()); //如果创建失败,表示验证没有通过,输出错误信息
} else { //验证通过,进行其他操作
$content ->userid=Cookie::get( 'userid' );
$content ->add();
$this ->assign( "jumpUrl" , "__URL__/index" );
$this ->success( '添加成功!' );
}
// 数据查询操作  
public function index() {
$content = new ContentModel();
$list = $content ->findAll();  
//用户的cookie
$username = Cookie::get( 'username' );
$lastlogintime = Cookie::get( 'lastlogintime' );
$this ->assign( 'list' , $list );    
$this ->assign( 'title' , '我的首页' );
$this ->assign( 'username' , $username );
$this ->assign( 'lastlogintime' , $lastlogintime );
$this ->display();  
// 删除操作
public function delete (){
$content = new ContentModel();
$id = $_GET [ 'id' ];
if ( $content ->where( "id=$id" )-> delete ()){
$this ->assign( "jumpUrl" , "__URL__/index" );
$this ->success( '删除成功!' );
} else {
$this ->assign( "jumpUrl" , "__URL__/index" );
$this ->error( '删除失败!' );
}
// 编辑操作
public function edit(){
$content = new ContentModel();
$id = $_GET [ 'id' ];
if ( $id != '' )
{
//$data = $content->select($id);
$data = $content ->where( "id=$id" )->select();
if (! empty ( $data )){
$this ->assign( 'data' , $data );
} else {
echo "数据为空!" ;
}
}
$this ->assign( 'title' , '编辑页面' );
$this ->display();
}
// 更新操作
public function update(){
$content = new ContentModel();
//直接使用create(),自动会帮你进行数据的传值
/*$content->create();
$content->save(); // 根据条件保存修改的数据
echo "更新数据成功!";*/
// 使用post 传值过来,进行更新
$id = $_POST [ 'id' ];
if ( $id != '' )
{
$data [ 'id' ] = $id ;
$data [ 'title' ] = $_POST [ 'title' ];
$data [ 'content' ] = $_POST [ 'content' ];
if ( $content ->save( $data )) // 根据条件保存修改的数据
{
$this ->assign( "jumpUrl" , "__URL__/index" );
$this ->success( '更新数据成功!' );
}
else {
$this ->assign( "jumpUrl" , "__URL__/index" );
$this ->success( '更新数据失败!' );
}
} else
{
echo "保存数据失败!" ;
}
}
}
?>

ContentModel.class.php页面:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
class ContentModel extends Model{
/*
* 自动验证
* array(验证字段,验证规则,错误提示,验证条件,附加规则,验证时间)
*/
protected $_validate = array (
array ( 'title' , 'require' , '标题必须填写!' ),
array ( 'content' , 'require' , '内容必须填写!' ), 
);
/* 
* 自动填充
* array(填充字段,填充内容,填充条件,附加规则)
*/
protected $_auto = array (
array ( 'addtime' , 'time' ,1, 'function' ),
);
}
?>

UserModel.class.php页面:

?
1
2
3
4
5
6
7
<?php
class UserModel extends Model{
protected $_validate = array (
array ( 'username' , '' , '帐号名称已经存在!' ,0, 'unique' ,1), 
);  
}
?>


这里需要注意的是,使用自动验证的时候 实例化时要用 $user = D("user") 而不能用 $user = M("user"),用M这种方法会报错,D函数用于实例化Model,M函数用户实例化一个没有模型的文件。

success.html页面:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
< html >
< head >
< meta http-equiv = "Content-Type" content = "text/html; charset=UTF-8" >
< meta http-equiv = "refresh" content = "20; url='{$jumpUrl}'" />
< title >信息提示</ title >
</ head >
< body >
< div id = "man_zone" >
< table width = "40%" border = "1" align = "center" cellpadding = "3" cellspacing = "0" class = "table" style = "margin-top:100px;" >
< tr >
< th align = "center" style = "background:#cef" >信息提示</ th >
</ tr >
< tr >
< td >< p >{$message}< br />
2秒后返回指定页面!< br />
如果浏览器无法跳转,< a href = "{$jumpUrl}" rel = "external nofollow" >请点击此处</ a >。</ p ></ td >
</ tr >
</ table >
</ div >
</ body >

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值