Пример #1
0
 /**
  * Generated from @assert ($this->object->encode(1234)) [==] 1234.
  *
  * @covers Password::decode
  */
 public function testDecode2()
 {
     $this->assertEquals(1234, $this->object->decode($this->object->encode(1234)));
 }
Пример #2
0
 /**
  * ตรวจสอบการ login เมื่อมีการเรียกใช้ class new Login
  * action=logout ออกจากระบบ
  * มาจากการ submit ตรวจสอบการ login
  * ถ้าไม่มีทั้งสองส่วนด้านบน จะตรวจสอบการ login จาก session และ cookie ตามลำดับ
  *
  * @return \Login
  */
 public static function create()
 {
     $obj = new static();
     // ค่าที่ส่งมา
     $save = Input::filter($_POST);
     // ตรวจสอบการ login
     if (Input::get($_GET, 'error') === 'EMAIL_EXISIS') {
         // facebook login error มี email อยู่แล้ว
         self::$login_message = Language::get('This email is already registered');
     } elseif (empty($save) && Input::get($_GET, 'action') === 'logout') {
         // logout ลบ session และ cookie
         unset($_SESSION['login']);
         $time = time();
         setCookie('login_email', '', $time, '/');
         setCookie('login_password', '', $time, '/');
         self::$login_message = Language::get('Logout successful');
     } elseif (isset($save['action']) && $save['action'] === 'forgot') {
         // ลืมรหัสผ่าน
         return $obj->forgot();
     } else {
         // ตรวจสอบค่าที่ส่งมา
         if (isset($save['remember'])) {
             $login_remember = $save['remember'];
         } elseif (isset($_COOKIE['login_remember'])) {
             $login_remember = $_COOKIE['login_remember'] == 1 ? 1 : 0;
         } else {
             $login_remember = 0;
         }
         $pw = new Password(Config::create()->get('password_key'));
         foreach (array('login_email', 'login_password') as $name) {
             $key = str_replace('login_', '', $name);
             if (!isset($save[$key])) {
                 foreach (array($_SESSION, $_COOKIE) as $var) {
                     if (isset($var[$name])) {
                         if ($var == $_COOKIE) {
                             ${$name} = $pw->decode($var[$name]);
                         } else {
                             ${$name} = trim($var[$name]);
                         }
                         break;
                     }
                 }
             } else {
                 ${$name} = $save[$key];
             }
         }
     }
     if (isset($login_email) && isset($login_password)) {
         self::$text_email = $login_email;
         self::$text_password = $login_password;
         // ตรวจสอบการกรอก
         if (empty($login_email)) {
             self::$login_message = Language::get('Please fill out') . ' ' . Language::get('Email');
             self::$login_input = 'text_email';
         } elseif (empty($login_password)) {
             self::$login_message = Language::get('Please fill out') . ' ' . Language::get('Password');
             self::$login_input = 'text_password';
         } else {
             // ตรวจสอบการ login กับฐานข้อมูล
             $login_result = $obj->checkLogin($login_email, $login_password);
             if (is_string($login_result)) {
                 // ข้อความผิดพลาด
                 self::$login_input = $login_result == 'Incorrect password' ? 'text_password' : 'text_email';
                 self::$login_message = Language::get($login_result);
             } else {
                 // save login session
                 foreach ($login_result as $key => $value) {
                     $_SESSION['login'][$key] = $value;
                 }
                 $_SESSION['login']['password'] = $login_password;
                 // save login cookie
                 $time = time() + 2592000;
                 // password
                 $pw = new Password(self::$cfg->password_key);
                 if ($login_remember == 1) {
                     setcookie('login_email', $pw->encode($login_result->email), $time, '/');
                     setcookie('login_password', $pw->encode($login_password), $time, '/');
                     setcookie('login_remember', $login_remember, $time, '/');
                 }
                 setcookie('login_id', $login_result->id, $time, '/');
             }
         }
     }
     // คืนค่า \Login
     return $obj;
 }