Esempio n. 1
0
        }
    }
}
class GeneralLogger extends LoginObserver
{
    function doUpdate(Login $login)
    {
        $status = $login->getStatus();
        // add login data to log
        print __CLASS__ . ":\tadd login data to log\n";
    }
}
class PartnershipTool extends LoginObserver
{
    function doUpdate(Login $login)
    {
        $status = $login->getStatus();
        // check $ip address
        // set cookie if it matches a list
        print __CLASS__ . ":\tset cookie if it matches a list\n";
    }
}
$login = new Login();
new SecurityMonitor($login);
new GeneralLogger($login);
$pt = new PartnershipTool($login);
$login->detach($pt);
for ($x = 0; $x < 10; $x++) {
    $login->handleLogin("bob", "mypass", '158.152.55.35');
    print "\n";
}
Esempio n. 2
0
<?php

include_once '../../class/pattern/observer.php';
/*
$login = new Login();   // 建立登入類別
$login->attach(new SecurityMonitor()); // 將安全監控類別註冊
$login->handleLogin("", "hank", "192.168.1.101");
*/
$login = new Login();
new SecurityMonitor($login);
new GeneralLogger($login);
new PartnershipTool($login);
$login->handleLogin("", "hank", "192.168.1.101");
Esempio n. 3
0
}
/**
 * Class EmailObserver
 */
class EmailObserver extends LoginObserver
{
    //不同功能的观察者实现不同的功能
    function doUpdate(Login $login)
    {
        $status = $login->getStatus();
        if ($status == Login::LOGIN_ACCESS) {
            //            $this->sendMail('用户ip:'.$observable->ip.'登陆成功!');
            echo __CLASS__ . '用户ip:' . $login->ip . '登陆成功!' . '------------------';
        }
        if ($status == Login::LOGIN_WRONG_PASS) {
            //            $this->sendMail('用户ip:'.$observable->ip.'登陆失败,密码错误!');
            echo __CLASS__ . '用户ip:' . $login->ip . '登陆失败,密码错误!' . '------------------';
        }
        if ($status == Login::LOGIN_USER_UNKNOWN) {
            //            $this->sendMail('用户ip:'.$observable->ip.'登陆失败,无此用户!');
            echo __CLASS__ . '用户ip:' . $login->ip . '登陆失败,无此用户!' . '------------------';
        }
    }
}
//实例化登陆信息
$login = new Login();
//实现发邮件观察者
new EmailObserver($login);
//开始登陆
$login->handleLogin();
Esempio n. 4
0
        if ($status[0] == Login::LOGIN_WRONG_PASS) {
            // Отправим почту системному администратору
            print __CLASS__ . ":\tОтправка почты системному администратору \n";
        }
    }
}
class GeneralLogger extends LoginObserver
{
    function doUpdate(Login $login)
    {
        $status = $login->getStatus();
        // Регистрируем подключение в журнал
        print __CLASS__ . ":\tРегистрация в системном журнале\n";
    }
}
class PartnershipTool extends LoginObserver
{
    function doUpdate(Login $login)
    {
        $status = $login->getStatus();
        // Проверим IP
        // Отправим cookie-файл, если адрес соответствует списку
        print __CLASS__ . ":\tОтправка cookie-файл, если адрес соответствует списку\n";
    }
}
$login = new Login();
new SecurityMonitor($login);
new GeneralLogger($login);
new PartnershipTool($login);
$login->handleLogin('Anton', '123', '192.168.0.3');