`

PHP_THINKPHP_study11_后台验证与自动运行的方法

    博客分类:
  • php
php 
阅读更多

一、登陆后台验证

   1、登陆html配置提交地址:

    

 <form action="{:U('Admin/Login/login')}" method="post" id="login">

   2、Admin/LoginAction.class.php添加login()

    

Public function  login()
    {
        if (!IS_POST) halt('页面不存在');
//        echo $_SESSION['verify'] . '<br/>';
//        echo md5($_POST['code']);
//        p($_POST);
        if (I('code', '', 'md5') != session('verify')) {
            $this->error('验证码错误');
        }
        $username = I('username');
        $pwd = I('password', '', 'md5');
        $user = M('user')->where(array('username' => $username))->find();
        if (!$user || $user['password'] != $pwd) {
            $this->error('账号或者密码错误');
        }
        if ($user['lock']) $this->error('用户被锁定');
        $data = array(
            'id' => $user['id'],
            'logintime' => time(),
            'loginip' => get_client_ip()
        );
        M('user')->save($data);

        session('uid', $user['id']);
        session('username', $user['username']);
        session('logintime', date('Y-m-d H:i:s'), $user['logintime']);
        session('loginip', $user['loginip']);

        $this->redirect('Admin/Index/index');
    }

  3、为了校验session信息判断登陆跳转

    写一个CommonAction.class.php 重写 _initialize()方法

    

<?php

Class CommonAction extends Action
{
    Public function  _initialize()
    {
        if (!isset($_SESSION['uid']) || !isset($_SESSION['username'])) {//如果没有检测到session中的uid或者username让他跳转到登陆页
            $this->redirect('Admin/Login/index');
        }
    }
}
?>

  4、IndexAction.class.php 继承CommonAction

    这样首页跳转就会初始化判断是否通过登陆过来的而不是url跳转过来

   

  5、写个退出方法在IndexAction.class.php

   

   public function logout()
    {
        session_unset();//清除session
        session_destroy();//摧毁session
        $this->redirect('Admin/Login/index');
    }

 6、Index.html中

   

  <a href="{:U('Admin/Index/logout')}" target="_self">退出</a>

 

详情请看源码

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics