zoukankan      html  css  js  c++  java
  • PHP和MySQL Web开发从新手到高手,第5天-添加辅助函数

    1. 用户权限相关的函数.

      这些函数在接下来的页面设计中会用到.

      主要包括:

      function user_is_login()

      function database_contains_author($email, $password)

      function get_md5_password($password)

      function user_has_role($role)

    1.1 user_is_login()

    function user_is_login(){
        if (isset($_POST['action']) and $_POST['action'] == 'login'){
            if (!isset($_POST['email']) or $_POST['password'] == '' or !isset($_POST['password']) or $_POST['password'] == ''){
                $GLOBALS['loginError'] = 'Please fill in user name and password.';
                return false;
            }
            if (database_contains_author($_POST['email'], $_POST['password'])){
                session_start();
                $_SESSION['loggedin'] = true;
                $_SESSION['email'] = $_POST['email'];
                $_SESSION['password'] = $_POST['password'];
                return true;
            } else {
                session_start();
                unset($_SESSION['loggedin']);
                unset($_SESSION['email']);
                unset($_SESSION['password']);
                return false;
            }
        }
        
        if (isset($_POST['action']) and $_POST['action'] == 'logout'){
            session_start();
            unset($_SESSION['loggedin']);
            unset($_SESSION['email']);
            unset($_SESSION['password']);
            header('Location:  '.$_POST['goto']);
            exit();
        }
        
        session_start();
        if (isset($_SESSION['loggedin'])){
            return database_contains_author($_SESSION['email'], $_SESSION['password']);
        }
        
        return false;
    }

    1.2 database_contains_author($email, $password)

    function database_contains_author($email, $password) {
        $password = get_md5_password($password);
        include 'db.inc.php';
        
        try {
            $sql = 'select count(*) from author where email = :email and password = :password';
            $s = $pdo->prepare($sql);
            $s->bindValue(':email', $email);
            $s->bindValue(':password', $password);
            $s->execute();
            
        } catch (PDOException $e) {
            $error = 'Query author faild...'.$e->getMessage();
            include 'error.html.php';
            exit();
        }
        
        $row = $s->fetch();
        return  $row[0] > 0;
    }

    1.3 get_md5_password($password)

    function get_md5_password($password){
        return md5($password.'ijdb');
    }

    1.4 user_has_role($role)

    function user_has_role($role) {
        include 'db.inc.php';
        
        try {
            $sql = 'SELECT * FROM authorrole 
                INNER JOIN author ON author.id = authorrole.authorid 
                INNER JOIN role ON authorrole.roleid = role.id 
                WHERE author.email = :email AND role.id = :roleid';
        
            $s = $pdo->prepare($sql);
            $s->bindValue(':email',$_SESSION['email']);
            $s->bindValue(':roleid', $role);
            
            $s->execute();    
        } catch (PDOException $e) {
            $error = 'Query authorrole faild...does not have right...'.$e->getMessage();
            include 'error.html.php';
            exit();
        }
        
        $row = $s->fetch();
        
        return $row[0] > 0;
    }
  • 相关阅读:
    Office Web Apps安装部署(一)
    TFS 2012使用简介
    SharePoint 2013 内容部署功能简介
    SharePoint 自定义WebPart之间的连接
    循环滚动新闻列表-懒人图库
    SharePoint 2010 文档管理之过期归档工具
    SharePoint 2010 文档管理系列之文档搜索
    SharePoint 网站登录不上,3次输入用户名/密码白页、
    SharePoint 门户添加内网域名
    JavaScript异常处理和事件处理
  • 原文地址:https://www.cnblogs.com/BigBigLiang/p/4934231.html
Copyright © 2011-2022 走看看