• php事件驱动


    1. [文件] class.Dispatcher.php ~ 967B     下载(9)     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    <?php
    session_start();
    require_once('class.Handler_Event.php');
    header("Content-type:text/html; charset=utf-8");
     
    class Dispatcher{
        private $handle;
         
        function __construct($event_handle){
            $this->handle=$event_handle;
        }
         
        function handle_the_event(){
            $name="handler_$this->handle";
            if(class_exists("$name")){
                $handler_obj=new $name($this->handle);
                $response=$handler_obj->secure_handler();
                return $response;
            }else{
                echo "I can't handle this!";
            }
        }
    }
    ?>
    <html>
    <head><title>Secure,Event Driven Record Viewer!</title></head>
     
    <body>
    <form action="<? echo $_SERVER['PHP_SELF'] ?>" method="post">
       <input type="submit" name="event" value="View">
       <input type="submit" name="event" value="Edit">
    </form>
    </body>
    </html>
    <?php
    function handle(){
        $event=$_POST['event'];
        $do=new Dispatcher($event);
        $do->handle_the_event();
    }
     
    $_SESSION['name']="Wangzy";
     
    if(isset($_POST['event'])) handle();
    ?>

    2. [文件] class.Handler_Event.php ~ 1KB     下载(6)     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    <?php
    //Event parent
    abstract class Event_Handler{
        function dbconn(){
            $link_id=mysql_connect("localhost","root","root");
            mysql_select_db("mytest",$link_id);
            mysql_query("set names utf8",$link_id);
            return $link_id;
        }
         
        abstract function handled_event();
        abstract function secure_handler();
    }
     
    //View Event
    class Handler_View extends Event_Handler{
        private $handle;
         
        function __construct($event_handle){
            $this->handle=$event_handle;
        }
         
        function handled_event(){
            echo "The event, $this->handle, is now handled.<br>
            It is ,I promise!<br><br>
            Your records are as follows:<br><br>";
             
            $id=parent::dbconn();
            $result=mysql_query("select * from table01",$id);
            while($row=mysql_fetch_array($result)){
                echo "Numbers:".$row['number']." Name:".$row['name']."<br>";
            }
        }
         
        function secure_handler(){
            if($_SESSION['name']=="Wangzy"){
                $this->handled_event();
            }else{
                echo "Sorry {$_SESSION['name']} you are not authorized!";
            }
        }
    }
     
    //Edit Event
    class Handler_Edit extends Event_Handler{
        private $handle;
         
        function __construct($event_handle){
            $this->handle=$event_handle;
        }
         
        function handled_event(){
            echo "This is event $this->handle, which is now handled -no kidding!<br>";
        }
         
        function secure_handler(){
            $this->handled_event();
        }
    }
  • 相关阅读:
    QML使用动画连续非线性改变int的取值
    QML粒子系统
    QML获取当前时间
    QML与C++混合编程
    QMLBinding
    QML图形渲染QtGraphicalEffects
    [九度][何海涛] 数组中只出现一次的数字
    [九度][何海涛] 扑克牌顺子
    [九度][何海涛] 最大子向量和
    [九度][何海涛] Move!Move!!Move!!!
  • 原文地址:https://www.cnblogs.com/xiezhi/p/5640673.html
Copyright © 2020-2023  润新知