在看了一些文档之后,果断开始学着写一个OA系统。哈哈,另外找了一个好看的模版。关于在登录验证这一块我是这样写的

public function login(Request $request) { if (!Request::instance()->isPost()) {return "请使用POST提交。";} $msg=array( 'code'=>0, 'msg'=>'error', 'url'=>'url', ); $username=trim(input('post.username')); $passwd=md5(trim(input('post.password'))); $list = Db::name('userinfo')->where('username', $username)->select(); if($list==null){ $msg['msg']="用户名错误"; return json_encode($msg); }else{ if($passwd==$list[0]['passwd']){ $msg['msg']="登录成功"; $msg['code']=1; $msg['url']="admin/main"; Session::set('username',$username); return json_encode($msg); }else{ $msg['msg']="用户名密码错误"; return json_encode($msg); } } }

首先是禁止GET提交,使用了POST提交。然后使用内置的input助手来获取用户提交的参数。另外,在这里我使用了trim过滤了一些字符。然后紧接着就是做了一些查询操作。在这里我的返回是用了一个json格式。然后在首页我使用了ajax请求,根据返回的code值来判断是该跳转还是该直接alert提示用户。另外,注意了。我在这里使用了session来保存我的用户名。还有使用了路由功能来简化了URL。至此登录已经完成。另外是我的控制面板。先看我的首页代码

public function index() { if(!Session::has('username')){return $this->error("请先登录!","/admin");} return $this->fetch(); } public function logout() { @Session::clear(); $this->success("您已成功退出","/admin"); }

这里我做了一个判断,判断session的username是否被赋值。如果没有,则表示已经退出状态或者是没有登录的状态。然后使用自带的错误页面进行提示与跳转。另外这个logout就是退出。这里清空了session。在实际的开发过程中,我还是决定使用user模型来存储一些数据。先看下我的控制面板吧

这里的本来是要用assign来渲染的。但是如果一个个的这样渲染。肯定是很丑很丑的了。所以我在模版里做了改动。核心代码是{$Think.session.username}。这里的username就是你之前自己设置的session值。大家可以看我前面的代码Session:set(‘username’,$username);然后的话,这里肯定还有很多的东西要展示。所以我们还是得想办法来简化这样的代码。使他看起来美观。另外。这里的网站名字我们得另外取一张表了。因为我们还需要获取系统的配置信息。我创建表了哦。我添加了几个字段。分别代表着:

现在开始写入配置信息。手工插入哈。现在开始获取哈。我们还需要借助thinkphp提供的标签用法。具体请看文档https://www.kancloud.cn/manual/thinkphp5/118003,先改一下首页模版吧。看着太多东西了。压力有点大。

[未完待续。得去休息啦]