Home > Article > PHP Framework > The most perfect registration and login for thinkphp5
namespace app\ index\ controller;
use app\ common\ controller\ Base; //导入公共控制器
use think\ Db;
use app\ index\ model\ Add as AddModel;
use think\ Validate;
use think\ Session;
use think\ facade\ Url;
class Index extends Base {
public
function index() {
$s = cookie( 'email' );
if ( is_null( $s ) ) {
return $this->fetch();
} else {
$q = '亲爱的用户名邮箱为';
$h = '欢迎回来';
$this->assign( [ 'email' => $s,
'q' => $q,
'h' => $h,
] );
return $this->fetch( 'user/dlhdym' );
}
}
}
namespace app\ index\ controller;
use think\ Controller;
use app\ common\ Validate;
use app\ common\ controller\ Base;
use app\ common\ model\ User as UserModel;
class User extends Base {
//注册页面
public
function register() {
$this->assign( [ 'title' => '用户注册' ] );
return $this->fetch();
}
public
function insert() {
//接受数据
$data = input( 'post.' );
$c = $_POST[ 'email' ];
$d = $_POST[ 'mobile' ];
$code = $_POST[ 'code' ];
$c = UserModel::get( [ 'email' => $_POST[ 'email' ] ] );
$d = UserModel::get( [ 'mobile' => $_POST[ 'mobile' ] ] );
$h = is_null( $c );
$z = is_null( $d );
if ( $h $z != 2 ) {
echo "<script>alert('您好你要注册的邮箱或手机号,平台里已经有人注册过了请换一下信息吧');</script>";
return $this->fetch( 'user/register' );
}
if ( !captcha_check( $code ) ) {
echo "<script>alert('您没有输入验证码或验证码错误!');</script>";
return $this->fetch( 'user/register' );
}
$sjh = $_POST[ 'mobile' ];
if ( preg_match( "/^1[34578]{1}\d{9}$/", $sjh ) ) {} else {
echo "<script>alert('不是手机号!');</script>";
return $this->fetch( 'user/register' );
exit;
}
//实例化验证器
$validate = new\ app\ common\ validate\ User;
//进行数据验证
if ( $validate->check( $data ) ) {
$data = input( 'post.' );
unset( $data[ 'password_confirm' ] );
$user = new UserModel( $data );
$a = $user->allowField( [ 'name', 'email', 'mobile', 'password' ] )->save();
if ( $a = 1 ) {
$code = input( 'code' );
echo "<script>alert('注册成功请登录看一下吧!');</script>";
return $this->fetch( 'user/login' );
}
} else {
dump( $validate->getError() );
}
return $this->fetch( 'user/register' );
}
//用户登录
public
function login() {
$this->assign( [ 'title' => '用户登录' ] );
return $this->fetch( 'user/login' );
}
public
function loginCheck() {
if ( isset( $_POST[ 'email' ] ) ) {} else {
echo "<script>alert('请不要动地址栏!');</script>";
return $this->redirect( 'index/index/index' );
exit;
}
$a = UserModel::get( [ 'email' => $_POST[ 'email' ] ] );
$b = UserModel::get( [ 'password' => $_POST[ 'password' ] ] );
$c = $_POST[ 'email' ];
$d = $_POST[ 'password' ];
$e = is_null( $a );
$f = is_null( $b );
if ( $c != '' && $d != '' ) {
if ( $f $e != 1 ) {
cookie( 'email', $c, 900000 ); // 指定cookie保存时间
$s = cookie( 'email' );
if ( $s = cookie( 'email' ) ) {
$q = '亲爱的用户名邮箱为';
$h = '欢迎回来';
echo "<script>alert('现在已经登录了!');</script>";
$this->assign( [ 'email' => $c,
'q' => $q,
'h' => $h,
] );
return $this->fetch( 'user/dlhdym' );
}
} else {
echo "<script>alert('邮箱或密码错误');</script>";
return $this->fetch( 'user/login' );
}
} else {
echo "<script>alert('您还没有输入邮箱或密码');</script>";
return $this->fetch( 'user/login' );
}
}
}
namespace app\ index\ controller;
use think\ Controller;
use think\ facade\ Url;
use think\ Cookie;
class tt extends Controller {
public
function index() {
cookie::delete( 'email' );
return $this->fetch( 'index/index' );
}
}
{include file="public:header"/}
{include file="index:nav"/}
{include file="public:right"/}
{include file="public:footer"/}
{include file="public:header"/}
{include file="public:nav"/}
{include file="public:right"/}
{include file="public:footer"/}
{include file="public:header"/}
{include file="public:nav"/}
{include file="public:right"/}
{include file="public:footer"/}