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