You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
245 lines
8.0 KiB
245 lines
8.0 KiB
1 year ago
|
<?php
|
||
|
|
||
|
/*===============================================*\
|
||
|
|| ############################################# ||
|
||
|
|| # JAKWEB.CH / Version 2.1.4 # ||
|
||
|
|| # ----------------------------------------- # ||
|
||
|
|| # Copyright 2023 JAKWEB All Rights Reserved # ||
|
||
|
|| ############################################# ||
|
||
|
\*===============================================*/
|
||
|
|
||
|
// prevent direct php access
|
||
|
define('JAK_PREVENT_ACCESS', 1);
|
||
|
|
||
|
if (!file_exists('config.php')) die('[index.php] config.php not exist');
|
||
|
require_once 'config.php';
|
||
|
|
||
|
// Language
|
||
|
$BT_LANGUAGE = JAK_LANG;
|
||
|
|
||
|
// Get the language file if different from settings
|
||
|
if (!$maincmspage && isset($widgetlang) && !empty($widgetlang) && $widgetlang != JAK_LANG) $BT_LANGUAGE = $widgetlang;
|
||
|
|
||
|
// Import the language file
|
||
|
if ($BT_LANGUAGE && file_exists(APP_PATH.'lang/'.strtolower($BT_LANGUAGE).'.php')) {
|
||
|
include_once(APP_PATH.'lang/'.strtolower($BT_LANGUAGE).'.php');
|
||
|
} else {
|
||
|
include_once(APP_PATH.'lang/'.JAK_LANG.'.php');
|
||
|
}
|
||
|
|
||
|
// If Referer Zero go to the session url
|
||
|
if (!isset($_SERVER['HTTP_REFERER'])) {
|
||
|
if (isset($_SESSION['jaklastURL'])) {
|
||
|
$_SERVER['HTTP_REFERER'] = $_SESSION['jaklastURL'];
|
||
|
} else {
|
||
|
if (defined('BASE_URL')) $_SERVER['HTTP_REFERER'] = BASE_URL;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Get the redirect into a sessions for better login handler
|
||
|
if ($page && $page != '404' && $page != 'js' && !in_array($page1, array("del","status"))) $_SESSION['LCRedirect'] = $_SERVER['REQUEST_URI'];
|
||
|
|
||
|
// Lang and pages file for template
|
||
|
define('JAK_SITELANG', $BT_LANGUAGE);
|
||
|
|
||
|
// Assign Pages to template
|
||
|
define('JAK_PAGINATE_ADMIN', 0);
|
||
|
|
||
|
// Define the avatarpath in the settings
|
||
|
define('JAK_FILEPATH_BASE', BASE_URL.JAK_FILES_DIRECTORY);
|
||
|
|
||
|
// Define the real request
|
||
|
$realrequest = substr($getURL->jakRealrequest(), 1);
|
||
|
define('JAK_PARSE_REQUEST', $realrequest);
|
||
|
|
||
|
// Check if the ip or range is blocked, if so redirect to offline page with a message
|
||
|
$USR_IP_BLOCKED = false;
|
||
|
if (!defined("JAK_IP_BLOCK")) jak_redirect(SIGN_UP_URL);
|
||
|
if (JAK_IP_BLOCK) {
|
||
|
$blockedips = explode(',', JAK_IP_BLOCK);
|
||
|
// Do we have a range
|
||
|
if (is_array($blockedips)) foreach ($blockedips as $bip) {
|
||
|
$blockedrange = explode(':', $bip);
|
||
|
|
||
|
if (is_array($blockedrange)) {
|
||
|
|
||
|
$network=ip2long($blockedrange[0]);
|
||
|
$mask=ip2long($blockedrange[1]);
|
||
|
$remote=ip2long($ipa);
|
||
|
|
||
|
if (($remote & $mask) == $network) {
|
||
|
$USR_IP_BLOCKED = $jkl['e11'];
|
||
|
$page = "banned";
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
// Now let's check if we have another match
|
||
|
if (in_array($ipa, $blockedips)) {
|
||
|
$USR_IP_BLOCKED = $jkl['e11'];
|
||
|
$page = "banned";
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// We have to reset the departments for the logged in operators or clients
|
||
|
if (JAK_USERISLOGGED) {
|
||
|
$new_chat_dep = array();
|
||
|
if (JAK_USERID != 0 && $jakuser->getVar("chat_dep") != 0) {
|
||
|
|
||
|
if (isset($HD_DEPARTMENTS) && !empty($HD_DEPARTMENTS)) foreach ($HD_DEPARTMENTS as $d) {
|
||
|
if (in_array($d["id"], explode(",", $jakuser->getVar("chat_dep")))) {
|
||
|
$new_chat_dep[] = $d;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
} elseif (JAK_CLIENTID != 0 && $jakclient->getVar("chat_dep") != 0) {
|
||
|
|
||
|
if (isset($HD_DEPARTMENTS) && !empty($HD_DEPARTMENTS)) foreach ($HD_DEPARTMENTS as $d) {
|
||
|
if (in_array($d["id"], explode(",", $jakclient->getVar("chat_dep")))) {
|
||
|
$new_chat_dep[] = $d;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (isset($new_chat_dep) && !empty($new_chat_dep)) {
|
||
|
reset($HD_DEPARTMENTS);
|
||
|
$HD_DEPARTMENTS = $new_chat_dep;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Now get the available departments
|
||
|
$online_op = false;
|
||
|
if (JAK_HOLIDAY_MODE != 0) {
|
||
|
$online_op = false;
|
||
|
} else {
|
||
|
if (isset($widgetid) && $widgetid != 0) $online_op = online_operators($opcacheid, $HD_DEPARTMENTS, $jakwidget[$widgetid]['depid'], $jakwidget[$widgetid]['singleopid']);
|
||
|
}
|
||
|
|
||
|
// We need to check the CMS
|
||
|
$jakpages = $jakdb->select("cms_pages", ["id", "title", "url_slug", "dorder", "showheader", "ishome", "showfooter", "access"], ["AND" => ["opid" => $_SESSION['opid'], "active" => 1, "lang" => JAK_SITELANG], "ORDER" => ["dorder" => "ASC"]]);
|
||
|
|
||
|
// Set the check page to 0
|
||
|
$JAK_CHECK_PAGE = 0;
|
||
|
|
||
|
// Logout
|
||
|
if ($page == 'logout') {
|
||
|
$checkp = 1;
|
||
|
|
||
|
// Get the user Agent, one more time
|
||
|
$valid_agent = filter_var($_SERVER['HTTP_USER_AGENT'], FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||
|
|
||
|
// Get the business name
|
||
|
$businessname = $_SESSION['business'];
|
||
|
|
||
|
if (JAK_CLIENTID) {
|
||
|
|
||
|
// Write the log file each time someone login after to show success
|
||
|
JAK_base::jakWhatslog('', $opcacheid, 0, JAK_CLIENTID, 6, 0, (isset($_COOKIE['WIOgeoData']) ? $_COOKIE['WIOgeoData'] : ''), $jakclient->getVar("email"), $_SERVER['REQUEST_URI'], $ipa, $valid_agent);
|
||
|
|
||
|
$jakclientlogin->jakLogout(JAK_CLIENTID);
|
||
|
$_SESSION["successmsg"] = $jkl['s'];
|
||
|
} elseif (JAK_USERID) {
|
||
|
|
||
|
// Write the log file each time someone login after to show success
|
||
|
JAK_base::jakWhatslog('', $opcacheid, JAK_USERID, 0, 3, 0, (isset($_COOKIE['WIOgeoData']) ? $_COOKIE['WIOgeoData'] : ''), $jakuser->getVar("username"), $_SERVER['REQUEST_URI'], $ipa, $valid_agent);
|
||
|
|
||
|
$jakuserlogin->jakLogout(JAK_USERID);
|
||
|
$_SESSION["successmsg"] = $jkl['s'];
|
||
|
}
|
||
|
|
||
|
// Set the session again
|
||
|
$_SESSION['opid'] = $opcacheid;
|
||
|
$_SESSION['business'] = $businessname;
|
||
|
|
||
|
jak_redirect(BASE_URL);
|
||
|
}
|
||
|
|
||
|
// forgot password
|
||
|
if ($page == 'forgot-password') {
|
||
|
|
||
|
if (JAK_CLIENTID || !is_numeric($page1) || !$jakclientlogin->jakForgotactive($page1)) jak_redirect(BASE_URL);
|
||
|
|
||
|
// select user
|
||
|
$row = $jakdb->get("clients", ["id", "name", "email"], ["forgot" => $page1]);
|
||
|
|
||
|
// create new password
|
||
|
$password = jak_password_creator();
|
||
|
$passcrypt = hash_hmac('sha256', $password, DB_PASS_HASH);
|
||
|
|
||
|
// update table
|
||
|
$result = $jakdb->update("clients", ["password" => $passcrypt, "forgot" => 0], ["id" => $row['id']]);
|
||
|
|
||
|
if (!$result) {
|
||
|
|
||
|
$_SESSION["errormsg"] = $jkl["not"];
|
||
|
// redirect back to home
|
||
|
jak_redirect(BASE_URL);
|
||
|
|
||
|
} else {
|
||
|
|
||
|
// Ok, we send the email // email address, cc email address, reply to, subject, message, attachment
|
||
|
if (jak_send_email($row["email"], "", "", JAK_TITLE.' - '.$jkl['hd25'], sprintf($jkl['hd27'], $row["name"], $password, JAK_TITLE), "")) {
|
||
|
$_SESSION["infomsg"] = $jkl["hd26"];
|
||
|
jak_redirect(BASE_URL);
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
$_SESSION["errormsg"] = $jkl["sql"];
|
||
|
jak_redirect(BASE_URL);
|
||
|
}
|
||
|
|
||
|
// Link we need a redirect
|
||
|
if ($page == 'link') {
|
||
|
$_SESSION['islinked'] = true;
|
||
|
create_session_id($opcacheid, $jakwidget[$widgetid]['depid'], $jakwidget[$widgetid]['opid'], $ipa);
|
||
|
jak_redirect(JAK_rewrite::jakParseurl('lc', 'open', $widgetid, $widgetlang));
|
||
|
}
|
||
|
// The chat class
|
||
|
if ($page == 'lc') {
|
||
|
require_once 'lc.php';
|
||
|
$JAK_CHECK_PAGE = 1;
|
||
|
$PAGE_SHOWTITLE = 1;
|
||
|
}
|
||
|
// Group Chat
|
||
|
if ($page == 'groupchat') {
|
||
|
require_once 'groupchat.php';
|
||
|
$JAK_CHECK_PAGE = 1;
|
||
|
$PAGE_SHOWTITLE = 1;
|
||
|
}
|
||
|
// API Request
|
||
|
if ($page == 'api') {
|
||
|
require_once 'api.php';
|
||
|
$JAK_CHECK_PAGE = 1;
|
||
|
$PAGE_SHOWTITLE = 1;
|
||
|
}
|
||
|
|
||
|
if ($JAK_CHECK_PAGE == 0) {
|
||
|
// Include all the pages
|
||
|
foreach($jakpages as $ca) {
|
||
|
|
||
|
if ((empty($page) && $ca['ishome'] == 1) || ($page == $ca['url_slug']) || JAK_HOLIDAY_MODE == 1 || $page == '404' || $page == 'banned') {
|
||
|
|
||
|
// What information should we load
|
||
|
if (JAK_HOLIDAY_MODE == 1 && JAK_OFFLINE_CMS_PAGE != 0) {
|
||
|
$pageid = JAK_OFFLINE_CMS_PAGE;
|
||
|
} elseif ($ca['id'] > 0) {
|
||
|
$pageid = $ca['id'];
|
||
|
}
|
||
|
|
||
|
// Include the page php file
|
||
|
require_once 'template/'.JAK_FRONT_TEMPLATE.'/index.php';
|
||
|
$JAK_CHECK_PAGE = 1;
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// if page not found
|
||
|
if ($JAK_CHECK_PAGE == 0) jak_redirect(JAK_rewrite::jakParseurl('404'));
|
||
|
|
||
|
// Reset success and errors session for next use
|
||
|
unset($_SESSION["successmsg"]);
|
||
|
unset($_SESSION["errormsg"]);
|
||
|
unset($_SESSION["infomsg"]);
|
||
|
?>
|