ThinkPHP登录功能的实现方法

前端技术 2023/09/02 PHP

登陆功能是PHP程序设计中常见的功能。本文ThinkPHP实例主要完成注册成功后进入首页,并告诉你是登录用户的功能。具体实现步骤如下:

第一步:在config.php文件中加上:

\'USER_AUTH_KEY\'=>\'authId\'

示例如下:

<?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)
{
//$_SESSION[C(\'USER_AUTH_KEY\')]=$user;//不能用此句
Session::set(C(\'USER_AUTH_KEY\'),$user);
//dump(Session::get(\'authId\')); 
echo \"<script>alert(\'数据库添加成功\');location.href=\'http://127.0.0.1/zhuce/index.php/index\';</script>\";
}
else throw_exception(\"<script>alert(\'数据库添加失败\');history.back();</script>\");
}

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

具体代码如下:

public function index()
{
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(); 
}

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

<body>
{$msg}<br />
这是我的首页
</body>

小结:

登录代码都是围绕写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登录功能的实现方法能对大家的ThinkPHP程序设计起到一定的帮助作用。

本文地址:https://www.stayed.cn/item/4323

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。