public static function handle($select, $sql, $rsnum) { if (empty(self::$num)) { self::$num = CORE::$cfg["item_num"]; } if (!empty($rsnum) && $rsnum > self::$num) { $offset = 0; list($offset, $oldNum) = explode(',', $select['limit']); self::$all = ceil($rsnum / self::$num); # 總頁數 if (empty(self::$now)) { self::$now = 1; } if (self::$now < 0 || self::$now > self::$all) { self::$now = 1; } self::$start = $limit_start = self::$num * self::$now - self::$num + $offset; # limit 開始資料列數 $new_limit = $limit_start . "," . self::$num; # limit 組合完成 $select['limit'] = $new_limit; $sql_page = DB::select($select); $page = array($sql_page, DB::num($sql_page)); self::row(); } else { self::$now = 1; $page = array($sql, $rsnum); } SESS::write('PAGE', self::$now); return $page; }
public static function register($msg, $path) { CHECK::is_array_exist($msg); if (CHECK::is_pass()) { foreach ($msg as $field => $var) { SESS::write('msg', $field, $var); } } else { SESS::write('msg', $msg); } header("location: {$path}"); }
public static function write() { $args = func_get_args(); self::$write = array_pop($args); // 最後一個輸入為寫入值 self::$act = 'write'; self::$args = $args; if (is_array(self::$args)) { self::get(); } self::$act = false; self::$args = false; self::$write = false; }
public static function fetch() { SESS::del('SK'); if (!empty(self::$now)) { SESS::write('SK', self::$now); $sk_str = urldecode(self::$now); $sk_str = str_replace('sk-', '', $sk_str); $sk_array = explode("|", $sk_str); foreach ($sk_array as $sk_group) { list($field, $value) = explode(":", $sk_group); if (!empty($value)) { $subCK = preg_match('/^sub-/', $field) ? true : false; $output = false; if ($subCK) { list($prefix, $orignField) = explode('-', $field); $field = $orignField; } switch (true) { case $field == "parent": $output = "{$field} = '{$value}'"; break; default: $output = "{$field} like '%{$value}%'"; break; } if (!$subCK) { $sk[] = $output; } else { $sub[] = $output; $field = 'SUB_' . $orignField; } self::$args[$field] = $value; VIEW::assignGlobal("SK_" . strtoupper($field), $value); } } if (is_array($sub)) { self::$sub = implode(" and ", $sub); } if (is_array($sk)) { return implode(" and ", $sk); } } return false; }
private static function modify() { $id = array_shift(CORE::$args); $amount = array_shift(CORE::$args); $cart = SESS::get('cart', $id); $cart["amount"] = $amount; $cart["subtotal"] = $cart["price"] * $amount; SESS::write('cart', $id, $cart); header("location: " . CORE::$root . 'cart/'); }
private static function reverify() { $manager = SESS::get("MANAGER"); $reverify_code = CORE::rand_password(); SESS::write('reverify', $reverify_code); $mail_temp = 'ogs-mail-manager-reverify-tpl.html'; VIEW::assignGlobal('VALUE_REVERIFY_CODE', $reverify_code); new VIEW($mail_temp, false, true, 1); CORE::mail_handle(SYSTEM::$setting["email"], $manager["account"], VIEW::$output, CORE::$lang["manager_verify"], SYSTEM::$setting["name"]); # 寄出認證信 }
public static function noTrans($s = false) { if (empty($s)) { return false; } $noTrans = SESS::get('noTrans'); $keys = count($noTrans) + 1; SESS::write('noTrans', $keys, $s); return true; }
public static function args_output($output = false, $tpl = false, $args = false) { if (!$output) { $sess_args = $args !== false ? $args : $_REQUEST; /* if(is_array($sess_args)){ foreach($sess_args as $field => $var){ $newArgs[$field] = urlencode($var); } $newArgsJson = json_encode($newArgs); }else{ $newArgsJson = json_encode(urlencode($sess_args)); } */ $newArgsJson = json_encode($sess_args); SESS::write('last_args', urlencode($newArgsJson)); } else { $output_args = $args !== false ? $args : SESS::get('last_args'); if (!empty($output_args)) { $argsArray = json_decode(urldecode($output_args), true); } CHECK::is_array_exist($argsArray); if (CHECK::is_pass()) { self::$args = $argsArray; if ($tpl) { foreach ($argsArray as $field => $value) { #$value = urldecode($value); switch ($field) { case "filename": case "title": case "h1": case "keywords": case "description": case "short_desc": $prefix = "SEO_"; break; default: $prefix = "VALUE_"; break; } VIEW::assignGlobal($prefix . strtoupper($field), $value); } } } SESS::del('last_args'); return self::$args; } }
private static function login() { CHECK::is_email($_POST["account"]); CHECK::is_password($_POST["password"]); if (CHECK::is_pass()) { $rsnum = CRUD::dataFetch('manager', array('ban' => '0', 'status' => '1', 'account' => $_POST["account"], 'password' => md5($_POST["password"]))); if ($rsnum == 1) { list($manager) = CRUD::$data; $pass = true; } } if (!$pass) { $fail_count = SESS::get('LOGIN_FAIL'); SESS::write('LOGIN_FAIL', ++$fail_count); if ($fail_count <= 3) { CORE::msg(self::$lang["login_error"], CORE::$manage . 'manager/login/'); } else { # 失敗超過三次禁止登入 session_destroy(); CRUD::dataInsert('ban', array('ip' => CORE::getIP())); CORE::msg(self::$lang["login_ban"], CORE::$root); } } else { if (!empty($_POST["cookie"])) { $path = CORE::$manage . 'manager/reverify/'; } else { $path = CORE::$manage; } SESS::write("MANAGER", $manager); CORE::msg(self::$lang["login_success"], $path); } }
private static function login($path = 'member') { CHECK::is_email($_POST["account"]); CHECK::is_password($_POST["password"]); if (CHECK::is_pass()) { $rsnum = CRUD::dataFetch('member', array('status' => '1', 'verify' => '1', 'account' => $_POST["account"], 'password' => md5($_POST["password"]))); if ($rsnum == 1) { list($row) = CRUD::$data; SESS::write('m_id', $row["id"]); CORE::msg(CORE::$lang["login_done"], CORE::$root . $path); return true; } else { CORE::msg(CORE::$lang["login_error"], CORE::$root . $path); return false; } } else { CORE::msg(CHECK::$alert, CORE::$root . $path); return false; } }