// ลบรูปภาพเดิม if (isset($index[$k]) && $index[$k] != $save[$k]) { @unlink(DATA_PATH . "document/{$index[$k]}"); } } } } } } if (!$error) { // บันทึก $save['create_date'] = $db->sql_datetime2mktime("{$_POST['write_create_date']} {$_POST['write_create_hour']}:{$_POST['write_create_minute']}:00"); $save['last_update'] = $mmktime; $save['index'] = 0; $save['category_id'] = gcms::getVars($_POST, 'write_category', 0); $save['ip'] = gcms::getip(); $save['published'] = $_POST['write_published'] == '1' ? '1' : '0'; $save['published_date'] = $db->sql_trim_str($_POST, 'write_published_date'); $save['show_news'] = ''; if (isset($_POST['write_show_news'])) { $write_show_news = array(); foreach ($_POST['write_show_news'] as $item) { $write_show_news[] = "{$item}=1"; } $save['show_news'] = implode("\n", $write_show_news); } if ($id == 0) { // ใหม่ $save['module_id'] = $index['module_id']; $save['member_id'] = $login['id']; $id = $db->add(DB_INDEX, $save);
if ($f) { while (false !== ($text = readdir($f))) { if ($text != '.' && $text != '..') { if ($text != $y) { gcms::rm_dir($counter_dir . "/{$text}"); } } } closedir($f); } } // ตรวจสอบ + สร้าง โฟลเดอร์ gcms::testDir("{$counter_dir}/{$y}", 0755); gcms::testDir("{$counter_dir}/{$y}/{$m}", 0755); // ip ปัจจุบัน $counter_ip = gcms::getip(); // session ปัจจุบัน $counter_ssid = session_id(); // วันนี้ $counter_day = date('Y-m-d', $mmktime); // อ่านข้อมูล counter ล่าสุด $sql = "SELECT * FROM `" . DB_COUNTER . "` ORDER BY `id` DESC LIMIT 1"; $my_counter = $db->customQuery($sql); $my_counter = sizeof($my_counter) == 1 ? $my_counter[0] : array('date' => '', 'counter' => 0); if ($my_counter['date'] != $counter_day) { // วันใหม่ $my_counter['visited'] = 0; $my_counter['pages_view'] = 0; $my_counter['date'] = $counter_day; $counter_add = true; // clear useronline
/** * ฟังก์ชั่น ตรวจสอบการ login * * @global array $config ตัวแปรเก็บการตั้งค่าของ GCMS * @global resource $db database resource * @global int $mmktime เวลาปัจจุบัน * @global int $mtoday วันที่วันนี้ * @param string $email อีเมล์ที่ต้องการตรวจสอบ * @param string $password รหัสผ่านที่ต้องการตรวจสอบ * @return array|int ข้อมูลของสมาชิก หาก emailและ password ถูกต้อง หรือ 0 ไม่พบอีเมล์, 1 ยังไม่ได้ activate, 2 ติดแบน, 3 รหัสผ่านผิด, 4 login ต่าง ip กัน */ public static function CheckLogin($email, $password) { global $config, $db, $mmktime, $mtoday; if ($email == '') { // ไม่กรอก email มา return 0; } elseif (isset($config['demo_mode']) && $config['demo_mode'] === 1 && $email == 'demo' && $password == 'demo') { $login_result = array(); $login_result['id'] = 0; $login_result['email'] = 'demo'; $login_result['password'] = '******'; $login_result['displayname'] = 'demo'; $login_result['pname'] = ''; $login_result['fname'] = ''; $login_result['lname'] = ''; $login_result['status'] = 1; $login_result['admin_access'] = 1; $login_result['account'] = 'demo'; return $login_result; } else { $userupdate = false; $login_result = false; if ($config['member_login_phone'] == 1) { $sql = "SELECT * FROM `" . DB_USER . "` WHERE `email`='{$email}' OR `phone1`='{$email}'"; } else { $sql = "SELECT * FROM `" . DB_USER . "` WHERE `email`='{$email}'"; } foreach ($db->customQuery($sql) as $item) { if ($item['password'] == md5($password . $item['email'])) { $login_result = $item; break; } } if (!$login_result) { // ไม่พบ email คืนค่า 0 // รหัสผ่านผิด คืนค่า 3 return isset($item) && is_array($item) ? 3 : 0; } elseif (trim($login_result['activatecode']) != '') { // ยังไม่ได้ activate return 1; } else { // ตรวจสอบการแบน if ($login_result['ban_date'] > 0 && $mmktime > $login_result['ban_date'] + $login_result['ban_count'] * 86400) { // ครบกำหนดการแบนแล้ว เคลียร์การแบน $login_result['ban_date'] = 0; $login_result['ban_count'] = 0; $userupdate = true; } if ($login_result['ban_date'] > 0) { // ติดแบน return 2; } else { $session_id = session_id(); // ตรวจสอบการ login มากกว่า 1 ip $ip = gcms::getip(); if ($config['member_only_ip'] == 1 && $ip != '') { $sql = "SELECT * FROM `" . DB_USERONLINE . "`"; $sql .= " WHERE `member_id`='{$login_result['id']}' AND `ip`!='{$ip}' AND `ip`!=''"; $sql .= " ORDER BY `time` DESC LIMIT 1"; $online = $db->customQuery($sql); if (sizeof($online) == 1 && $mmktime - $online[0]['time'] < COUNTER_GAP) { // login ต่าง ip กัน return 4; } } // อัปเดทการเยี่ยมชม if ($session_id != $login_result['session_id']) { $login_result['visited']++; $userupdate = true; } if ($userupdate) { $db->edit(DB_USER, $login_result['id'], array('session_id' => $session_id, 'visited' => $login_result['visited'], 'lastvisited' => $mmktime, 'ip' => $ip)); } return $login_result; } } } }
if (sizeof($ret) == 0) { // post ได้ $post['detail'] = $detail; $post['last_update'] = $mmktime; if ($id > 0) { // แก้ไขความคิดเห็น $db->edit(DB_COMMENT, $id, $post); // อัปเดทคำถาม $q['commentator'] = $index['commentator']; $q['commentator_id'] = $index['member_id']; $q['comment_id'] = $id; // แก้ไขเรียบร้อย $ret['error'] = 'EDIT_SUCCESS'; } else { // ความคิดเห็นใหม่ $post['ip'] = gcms::getip(); $post['index_id'] = $index['id']; $post['module_id'] = $index['module_id']; $id = $db->add(DB_COMMENT, $post); // อัปเดทคำถาม $q['commentator'] = $sender; $q['commentator_id'] = $post['member_id']; $q['comments'] = $index['comments'] + 1; $q['comment_id'] = $id; // อัปเดทสมาชิก if ($post['member_id'] > 0) { // อัปเดท reply $db->query("UPDATE `" . DB_USER . "` SET `reply`=`reply`+1 WHERE `id`='{$post['member_id']}' LIMIT 1"); } if ($index['category_id'] > 0) { // อัปเดทจำนวนเรื่อง และ ความคิดเห็น ในหมวด
if (is_file(CONFIG)) { include CONFIG; } foreach ($newconfig[$owner] as $key => $value) { if (!isset($config[$key])) { $config[$key] = $value; } } // บันทึก config.php if (!gcms::saveConfig(CONFIG, $config)) { $error = 'DO_NOT_SAVE'; } } } if (!$error) { $index_save['ip'] = gcms::getip(); $index_save['last_update'] = $mmktime; $index_save['member_id'] = $_SESSION['login']['id']; $index_save['language'] = $language; if ($id == 0) { // รายการใหม่ if ($module_id == 0) { // โมดูลใหม่ $module_save['owner'] = $owner; $module_id = $db->add(DB_MODULES, $module_save); } // index $index_save['create_date'] = $mmktime; $index_save['index'] = 1; $index_save['module_id'] = $module_id; $id = $db->add(DB_INDEX, $index_save);