>  기사  >  php教程  >  ThinkPHP 사용자 등록 로그인 메시지 전체 예시

ThinkPHP 사용자 등록 로그인 메시지 전체 예시

高洛峰
高洛峰원래의
2016-12-21 16:35:451319검색

이 글에서는 사용자 등록, 로그인, 메시지 남기기 등 ThinkPHP에서 구현하는 기능을 예시로 설명합니다. 여기서 주의할 점은 사용자 모델이 있을 때 사용자 클래스를 인스턴스화할 때 D를 사용한다는 점입니다. 구현하는 방법입니다.

UserAction.class.php 페이지:

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

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(&#39;userid&#39;);
$content->add();
$this->assign("jumpUrl","__URL__/index");
$this->success(&#39;添加成功!&#39;);
}
} 
// 数据查询操作  
public function index() {
$content = new ContentModel();
$list = $content->findAll();  
//用户的cookie
$username = Cookie::get(&#39;username&#39;);
$lastlogintime = Cookie::get(&#39;lastlogintime&#39;);
$this->assign(&#39;list&#39;,$list);    
$this->assign(&#39;title&#39;,&#39;我的首页&#39;);
$this->assign(&#39;username&#39;,$username);
$this->assign(&#39;lastlogintime&#39;,$lastlogintime);
$this->display();  
} 
// 删除操作
public function delete(){
$content = new ContentModel();
$id = $_GET[&#39;id&#39;];
if($content->where("id=$id")->delete()){
$this->assign("jumpUrl","__URL__/index");
$this->success(&#39;删除成功!&#39;);
}else{
$this->assign("jumpUrl","__URL__/index");
$this->error(&#39;删除失败!&#39;);
}
} 
// 编辑操作
public function edit(){
$content = new ContentModel();
$id = $_GET[&#39;id&#39;];
if($id != &#39;&#39;)
{
//$data = $content->select($id);
$data = $content->where("id=$id")->select();
if(!empty($data)){
$this->assign(&#39;data&#39;,$data);
}else{
echo "数据为空!";
}
}
$this->assign(&#39;title&#39;,&#39;编辑页面&#39;);
$this->display();
}
// 更新操作
public function update(){
$content = new ContentModel();
//直接使用create(),自动会帮你进行数据的传值
/*$content->create();
$content->save(); // 根据条件保存修改的数据
echo "更新数据成功!";*/
// 使用post 传值过来,进行更新
$id = $_POST[&#39;id&#39;];
if($id != &#39;&#39;)
{
$data[&#39;id&#39;] = $id;
$data[&#39;title&#39;] = $_POST[&#39;title&#39;];
$data[&#39;content&#39;] = $_POST[&#39;content&#39;];
if($content->save($data))// 根据条件保存修改的数据
{
$this->assign("jumpUrl","__URL__/index");
$this->success(&#39;更新数据成功!&#39;);
}
else{
$this->assign("jumpUrl","__URL__/index");
$this->success(&#39;更新数据失败!&#39;);
}
}else
{
echo "保存数据失败!";
}
}
}
?>

ContentModel.class.php 페이지:

<?php
class ContentModel extends Model{
/*
* 自动验证
* array(验证字段,验证规则,错误提示,验证条件,附加规则,验证时间)
*/
protected $_validate = array(
array(&#39;title&#39;,&#39;require&#39;,&#39;标题必须填写!&#39;),
array(&#39;content&#39;,&#39;require&#39;,&#39;内容必须填写!&#39;), 
);
/* 
* 自动填充
* array(填充字段,填充内容,填充条件,附加规则)
*/
protected $_auto = array(
array(&#39;addtime&#39;,&#39;time&#39;,1,&#39;function&#39;),
);
}
?>

UserModel.class.php 페이지:

<?php
class UserModel extends Model{
protected $_validate = array(
array(&#39;username&#39;,&#39;&#39;,&#39;帐号名称已经存在!&#39;,0,&#39;unique&#39;,1), 
);  
}
?>

여기서 자동 확인을 사용할 때 =를 인스턴스화할 때 $user 대신 $user = D("user")를 사용해야 한다는 점에 유의해야 합니다. M("사용자"), M 메서드를 사용하면 오류가 보고되고 D 함수는 모델을 인스턴스화하는 데 사용되며 M 함수 사용자는 모델 없이 파일을 인스턴스화합니다.

success.html 페이지:

<!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=&#39;{$jumpUrl}&#39;" />
<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>
</html>


ThinkPHP 사용자 등록 및 로그인 메시지의 전체 예를 보려면 PHP 중국어 웹사이트를 주목하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.