登陆功能是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
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我