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;
    }
  • 相关阅读:
    Centos 6 安装python2.7.6
    更新centos系统的python版本
    centos中wget的使用方法
    开启apahce的mod_speling.so模块,让使用apahce http服务器不再有大小写烦恼
    开启server-status失败
    TCP三次握手与四次挥手
    GitHub入门和项目托管
    使用javac,手动编译一个java文件的方法
    《TomCat与Java Web开发技术详解》(第二版) 第四章节的学习总结--常用Servlet API
    《TomCat与Java Web开发技术详解》(第二版) 第三章节的学习总结--利用Context元素来自定义web应用的存储位置
  • 原文地址:https://www.cnblogs.com/BigBigLiang/p/4934231.html
Copyright © 2011-2022 走看看