/** * Generated from @assert ($this->object->encode(1234)) [==] 1234. * * @covers Password::decode */ public function testDecode2() { $this->assertEquals(1234, $this->object->decode($this->object->encode(1234))); }
/** * ตรวจสอบการ 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; }