think php 登录功能,ThinkPHP登录功能怎么实现

ThinkPHP登录功能怎么实现

发布时间:2021-01-16 10:21:19

来源:亿速云

阅读:71

作者:小新

这篇文章给大家分享的是有关ThinkPHP登录功能怎么实现的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

用户登陆功能是PHP程序设计中常见的需求,本文ThinkPHP实例主要完成注册成功后进入首页的代码编写,并告诉你是如何实现登录用户的功能。

详解ThinkPHP登录功能实例代码

具体步骤:

第一步:在config.php文件中加上:'USER_AUTH_KEY'=>'authId'

示例如下:

(推荐教程:thinkphp教程)<?php

if(!defined('THINK_PATH')) exit();

return array(

// 定义数据库连接信息

'DB_TYPE'=> 'mysql',// 指定数据库是mysql

'DB_HOST'=> 'localhost',

'DB_NAME'=>'myuser', // 数据库名

'DB_USER'=>'root',

'DB_PWD'=>'', //您的数据库连接密码

'DB_PORT'=>'3306',

'DB_PREFIX'=>'think_',//数据表前缀

'USER_AUTH_KEY'=>'authId'

);

?>

第二步:在AdminAction.class.php中的insert()代码中用:Session::set(C('USER_AUTH_KEY'),$user);

保存登录用户名到session。

完整实现代码如下:public function insert()

{

header('Content-Type:text/html; charset=utf-8');//防止出现乱码

$user=$_POST['user'];

$this->verifyCheck();

$Pagemodel = D("user");

$vo = $Pagemodel->create();

if(false === $vo) die($Pagemodel->getError());

$topicid = $Pagemodel->add(); //add方法会返回新添加的记录的主键值

if($topicid)

{ // www.jbxue.com

//$_SESSION[C('USER_AUTH_KEY')]=$user;//不能用此句

Session::set(C('USER_AUTH_KEY'),$user);

//dump(Session::get('authId'));

echo "";

}

else throw_exception("");

}

第三步:在IndexAction.class.php文件中用if(!Session::is_set(C('USER_AUTH_KEY')))判断用户登录了没有。Session::get(C('USER_AUTH_KEY'))是获取登录用户的名。

具体代码如下:public function index()

{ //www.jbxue.com

if(!Session::is_set(C('USER_AUTH_KEY')))

//if(!isset($_SESSION['USER_AUTH_KEY'])||($_SESSION['USER_AUTH_KEY']==0))//不能用此句

{

$msg="用户没有登录";

}

else

{

$msg=Session::get(C('USER_AUTH_KEY')).'欢迎你回来';

}

$this->assign('msg',$msg);

$this->display();

}

第四步:首页显示模板,代码如下:

{$msg}

这是我的首页

总结:

登录代码都是围绕写session,判断session,读session展开。

写session用:Session::set(C('USER_AUTH_KEY'),$user);

判断session用:if(!Session::is_set(C('USER_AUTH_KEY')));

读session用:Session::get(C('USER_AUTH_KEY'))

感谢各位的阅读!关于“ThinkPHP登录功能怎么实现”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于 ThinkPHP6 实现登录需要以下步骤: 1. 创建用户表,包含用户ID、用户名、密码等字段。 2. 创建登录页面,包含用户名和密码输入框以及登录按钮。 3. 在控制器中处理登录请求,验证用户名和密码是否正确。 4. 如果登录成功,将用户信息存储到 Session 中,并跳转到首页。 5. 在首页中判断用户是否已登录,如果已登录,则显示用户信息。 下面是一个简单的示例代码: 1. 创建用户表 在 MySQL 数据库中创建一个名为 `users` 的表,包含以下字段: ``` id int(11) NOT NULL AUTO_INCREMENT, username varchar(50) NOT NULL, password varchar(255) NOT NULL, PRIMARY KEY (id) ``` 2. 创建登录页面 在 `app/view` 目录下创建一个名为 `login.html` 的文件,包含以下代码: ``` <form method="post" action="<?php echo url('user/login'); ?>"> <label>用户名:</label> <input type="text" name="username"><br> <label>密码:</label> <input type="password" name="password"><br> <input type="submit" value="登录"> </form> ``` 3. 处理登录请求 在 `app/controller` 目录下创建一个名为 `UserController.php` 的文件,包含以下代码: ``` <?php namespace app\controller; use think\Controller; use think\Request; use think\Session; class UserController extends Controller { public function login(Request $request) { $username = $request->post('username'); $password = $request->post('password'); // 验证用户名和密码是否正确 $user = \app\model\User::where('username', $username)->find(); if ($user && password_verify($password, $user->password)) { // 登录成功,将用户信息存储到 Session 中 Session::set('user_id', $user->id); Session::set('username', $user->username); $this->success('登录成功', 'index/index'); } else { // 登录失败,返回错误信息 $this->error('用户名或密码错误'); } } } ``` 4. 判断用户是否已登录 在 `app/controller` 目录下创建一个名为 `IndexController.php` 的文件,包含以下代码: ``` <?php namespace app\controller; use think\Controller; use think\Request; use think\Session; class IndexController extends Controller { public function index() { // 判断用户是否已登录 if (!Session::has('user_id')) { $this->error('请先登录', 'user/login'); } // 显示用户信息 $user_id = Session::get('user_id'); $username = Session::get('username'); $this->assign('user_id', $user_id); $this->assign('username', $username); return $this->fetch(); } } ``` 5. 完成登录功能 访问 `http://localhost/login` 即可进入登录页面,输入正确的用户名和密码,即可登录成功。登录成功后,将跳转到首页,如果未登录则会提示用户先登录
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值