connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$conn->set_charset("utf8");
// Get website settings
$result = $conn->query("SELECT webname, keywords, description, indexwebname, copyright FROM inc LIMIT 1");
if ($result) {
$row = $result->fetch_assoc();
$webname = textUncode($row['webname']);
$webkeywords = textUncode($row['keywords']);
$webdescription = textUncode($row['description']);
$indexwebname = textUncode($row['indexwebname']);
$copyright = textUncode($row['copyright']);
$result->close();
}
// Global variables
$useid = '';
$usename = '';
$usesex = '';
$usecompany = '';
$usetel = '';
$useemail = '';
// Session handling functions
function addSession($key, $value) {
$_SESSION['hjunkel.com' . $key] = $value;
}
function loadSession($key) {
return $_SESSION['hjunkel.com' . $key] ?? '';
}
// Check login function
function checkLogin($permission = '') {
global $conn;
$loginId = loadSession('loginid');
$loginUser = loadSession('loginuser');
$loginName = loadSession('loginname');
$loginPower = loadSession('loginpower');
if (empty($loginId) || empty($loginUser) || empty($loginName) || empty($loginPower)) {
echo "";
exit;
}
if (!is_numeric($loginId) || !is_numeric($loginPower)) {
echo "";
exit;
}
$loginId = $conn->real_escape_string($loginId);
$loginUser = $conn->real_escape_string($loginUser);
$result = $conn->query("SELECT loginstate, loginpower FROM login WHERE id=$loginId AND loginuser='$loginUser'");
if ($result->num_rows === 0) {
echo "";
exit;
}
$row = $result->fetch_assoc();
if ($row['loginstate'] == 0) {
echo "";
exit;
}
if ($row['loginpower'] != (int)$loginPower) {
echo "";
exit;
}
$result = $conn->query("SELECT powerstate, powercontent FROM power WHERE id=$loginPower");
if ($result->num_rows === 0) {
echo "";
exit;
}
$row = $result->fetch_assoc();
if ($row['powerstate'] == 0) {
echo "";
exit;
}
$powerContent = $row['powercontent'];
if (!empty($permission) && strpos($powerContent, $permission) === false) {
echo "";
exit;
}
}
function chkLogin($permission) {
global $conn;
$loginPower = loadSession('loginpower');
$result = $conn->query("SELECT powercontent FROM power WHERE id=" . (int)$loginPower);
if ($result->num_rows === 0) {
return false;
}
$row = $result->fetch_assoc();
if (!empty($permission) && strpos($row['powercontent'], $permission) === false) {
return false;
}
return true;
}
function checkPost() {
// 可以根据需要实现POST检查
// if (!isset($_SERVER['HTTP_REFERER']) || parse_url($_SERVER['HTTP_REFERER'], PHP_URL_HOST) !== $_SERVER['SERVER_NAME']) {
// die("");
// }
}
function txt2HTML($text) {
if (empty($text) || is_null($text)) {
return '';
}
return htmlspecialchars($text, ENT_QUOTES | ENT_HTML5, 'UTF-8');
}
function html2Txt($text) {
if (empty($text) || is_null($text)) {
return '';
}
return htmlspecialchars_decode($text, ENT_QUOTES);
}
function htmlEncode($text) {
if (empty($text) || is_null($text)) {
return '';
}
$chars = [
'&' => '&', "\t" => ' ', "\n" => '
', "\r" => '
',
' ' => ' ', '"' => '"', '%' => '%', "'" => ''',
'(' => '(', ')' => ')', '<' => '<', '>' => '>',
'[' => '[', ']' => ']', '^' => '^', '_' => '_',
'{' => '{', '|' => '|', '}' => '}'
];
return strtr($text, $chars);
}
function htmlUncode($text) {
if (empty($text) || is_null($text)) {
return '';
}
$chars = array_flip([
'&' => '&', "\t" => ' ', "\n" => '
', "\r" => '
',
' ' => ' ', '"' => '"', '%' => '%', "'" => ''',
'(' => '(', ')' => ')', '<' => '<', '>' => '>',
'[' => '[', ']' => ']', '^' => '^', '_' => '_',
'{' => '{', '|' => '|', '}' => '}'
]);
return strtr($text, $chars);
}
function textEncode($text) {
if (empty($text) || is_null($text)) {
return '';
}
$text = trim($text);
// Remove control characters
$text = preg_replace('/[\x00-\x1F\x7F]/', '', $text);
return htmlEncode($text);
}
function textUncode($text) {
if (empty($text) || is_null($text)) {
return '';
}
return htmlUncode($text);
}
function htmlUncode1($text) {
if (empty($text) || is_null($text)) {
return '';
}
$replacements = [
' ' => "\t",
'' => "\v",
'
' => '
',
'
' => '
',
'
' => '
',
' ' => ' ',
'&' => '&'
];
return strtr($text, $replacements);
}
function strLeft($str, $length) {
if (empty($str)) {
return '';
}
$substr = mb_substr($str, 0, $length, 'UTF-8');
return ($substr != $str) ? $substr . '..' : $substr;
}
function enMonth($m) {
$months = [
'1' => 'Jan', '2' => 'Feb', '3' => 'Mar',
'4' => 'Apr', '5' => 'May', '6' => 'Jun',
'7' => 'Jul', '8' => 'Aug', '9' => 'Sep',
'10' => 'Oct', '11' => 'Nov', '12' => 'Dec'
];
return $months[$m] ?? 'Dec';
}
function sitelinkReplace($content, $search, $replace, $limit = -1) {
if (empty($content) || is_null($content)) {
return '';
}
// 保存HTML标签内容
$patterns = [
'/]+>.+?<\/a>/is', // 链接
'/
]+>/is', // 图片
'/.+?<\/h[1-6]+>/is' // 标题
];
$savedTags = [];
$i = 0;
foreach ($patterns as $pattern) {
$content = preg_replace_callback($pattern, function($match) use (&$savedTags, &$i) {
$savedTags[$i] = $match[0];
$placeholder = "[{$i}]";
$i++;
return $placeholder;
}, $content);
}
if ($i == 0) {
// 如果没有需要保护的HTML标签,直接替换
return str_replace($search, $replace, $content, $limit);
}
// 执行替换
$content = str_replace($search, $replace, $content, $limit);
// 还原保存的标签
for ($j = 0; $j < $i; $j++) {
$content = str_replace("[{$j}]", $savedTags[$j], $content);
}
return $content;
}
function getIp() {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'] ?? $_SERVER['REMOTE_ADDR'] ?? '';
if (strlen($ip) > 15) {
$ip = 'Unknown';
}
return htmlEncode($ip);
}
function formatTime($time, $format) {
if (!strtotime($time)) {
return '';
}
$replacements = [
'yyyy' => 'Y',
'yy' => 'y',
'mm' => 'm',
'dd' => 'd',
'hh' => 'H',
'ff' => 'i',
'ss' => 's'
];
$phpFormat = strtr($format, $replacements);
return date($phpFormat, strtotime($time));
}
function removeHTML($text) {
if (empty($text) || is_null($text)) {
return '';
}
// Remove scripts and iframes
$text = preg_replace(['/