'$2y$12$6iyKwObB3zokmhwUuBhXxuB3/ZenHS4aosToHJJK0Yl3JgY1S80sy',
);
// Readonly users
// e.g. array('users', 'guest', ...)
$readonly_users = array(
'user'
);
// Global readonly, including when auth is not being used
$global_readonly = false;
// user specific directories
// array('Username' => 'Directory path', 'Username2' => 'Directory path', ...)
$directories_users = array();
// Enable highlight.js (https://highlightjs.org/) on view's page
$use_highlightjs = true;
// highlight.js style
// for dark theme use 'ir-black'
$highlightjs_style = 'vs';
// Enable ace.js (https://ace.c9.io/) on view's page
$edit_files = true;
// Default timezone for date() and time()
// Doc - http://php.net/manual/en/timezones.php
$default_timezone = 'Etc/UTC'; // UTC
// Root path for file manager
// use absolute path of directory i.e: '/var/www/folder' or $_SERVER['DOCUMENT_ROOT'].'/folder'
$root_path = $_SERVER['DOCUMENT_ROOT'];
// Root url for links in file manager.Relative to $http_host. Variants: '', 'path/to/subfolder'
// Will not working if $root_path will be outside of server document root
$root_url = '';
// Server hostname. Can set manually if wrong
// $_SERVER['HTTP_HOST'].'/folder'
$http_host = $_SERVER['HTTP_HOST'];
// input encoding for iconv
$iconv_input_encoding = 'UTF-8';
// date() format for file modification date
// Doc - https://www.php.net/manual/en/function.date.php
$datetime_format = 'm/d/Y g:i A';
// Path display mode when viewing file information
// 'full' => show full path
// 'relative' => show path relative to root_path
// 'host' => show path on the host
$path_display_mode = 'full';
// Allowed file extensions for create and rename files
// e.g. 'txt,html,css,js'
$allowed_file_extensions = '';
// Allowed file extensions for upload files
// e.g. 'gif,png,jpg,html,txt'
$allowed_upload_extensions = '';
// Favicon path. This can be either a full url to an .PNG image, or a path based on the document root.
// full path, e.g http://example.com/favicon.png
// local path, e.g images/icons/favicon.png
$favicon_path = '';
// Files and folders to excluded from listing
// e.g. array('myfile.html', 'personal-folder', '*.php', ...)
$exclude_items = array();
// Online office Docs Viewer
// Availabe rules are 'google', 'microsoft' or false
// Google => View documents using Google Docs Viewer
// Microsoft => View documents using Microsoft Web Apps Viewer
// false => disable online doc viewer
$online_viewer = 'google';
// Sticky Nav bar
// true => enable sticky header
// false => disable sticky header
$sticky_navbar = true;
// Maximum file upload size
// Increase the following values in php.ini to work properly
// memory_limit, upload_max_filesize, post_max_size
$max_upload_size_bytes = 5000000000; // size 5,000,000,000 bytes (~5GB)
// chunk size used for upload
// eg. decrease to 1MB if nginx reports problem 413 entity too large
$upload_chunk_size_bytes = 2000000; // chunk size 2,000,000 bytes (~2MB)
// Possible rules are 'OFF', 'AND' or 'OR'
// OFF => Don't check connection IP, defaults to OFF
// AND => Connection must be on the whitelist, and not on the blacklist
// OR => Connection must be on the whitelist, or not on the blacklist
$ip_ruleset = 'OFF';
// Should users be notified of their block?
$ip_silent = true;
// IP-addresses, both ipv4 and ipv6
$ip_whitelist = array(
'127.0.0.1', // local ipv4
'::1' // local ipv6
);
// IP-addresses, both ipv4 and ipv6
$ip_blacklist = array(
'0.0.0.0', // non-routable meta ipv4
'::' // non-routable meta ipv6
);
// if User has the external config file, try to use it to override the default config above [config.php]
// sample config - https://tinyfilemanager.github.io/config-sample.txt
$config_file = __DIR__.'/config.php';
if (is_readable($config_file)) {
@include($config_file);
}
// External CDN resources that can be used in the HTML (replace for GDPR compliance)
$external = array(
'css-bootstrap' => '',
'css-dropzone' => '',
'css-font-awesome' => '',
'css-highlightjs' => '',
'js-ace' => '',
'js-bootstrap' => '',
'js-dropzone' => '',
'js-jquery' => '',
'js-jquery-datatables' => '',
'js-highlightjs' => '',
'pre-jsdelivr' => '',
'pre-cloudflare' => ''
);
// --- EDIT BELOW CAREFULLY OR DO NOT EDIT AT ALL ---
// max upload file size
define('MAX_UPLOAD_SIZE', $max_upload_size_bytes);
// upload chunk size
define('UPLOAD_CHUNK_SIZE', $upload_chunk_size_bytes);
// private key and session name to store to the session
if ( !defined( 'FM_SESSION_ID')) {
define('FM_SESSION_ID', 'filemanager');
}
// Configuration
$cfg = new FM_Config();
// Default language
$lang = isset($cfg->data['lang']) ? $cfg->data['lang'] : 'en';
// Show or hide files and folders that starts with a dot
$show_hidden_files = isset($cfg->data['show_hidden']) ? $cfg->data['show_hidden'] : true;
// PHP error reporting - false = Turns off Errors, true = Turns on Errors
$report_errors = isset($cfg->data['error_reporting']) ? $cfg->data['error_reporting'] : true;
// Hide Permissions and Owner cols in file-listing
$hide_Cols = isset($cfg->data['hide_Cols']) ? $cfg->data['hide_Cols'] : true;
// Theme
$theme = isset($cfg->data['theme']) ? $cfg->data['theme'] : 'light';
define('FM_THEME', $theme);
//available languages
$lang_list = array(
'en' => 'English'
);
if ($report_errors == true) {
@ini_set('error_reporting', E_ALL);
@ini_set('display_errors', 1);
} else {
@ini_set('error_reporting', E_ALL);
@ini_set('display_errors', 0);
}
// if fm included
if (defined('FM_EMBED')) {
$use_auth = false;
$sticky_navbar = false;
} else {
@set_time_limit(600);
date_default_timezone_set($default_timezone);
ini_set('default_charset', 'UTF-8');
if (version_compare(PHP_VERSION, '5.6.0', '<') && function_exists('mb_internal_encoding')) {
mb_internal_encoding('UTF-8');
}
if (function_exists('mb_regex_encoding')) {
mb_regex_encoding('UTF-8');
}
session_cache_limiter('nocache'); // Prevent logout issue after page was cached
session_name(FM_SESSION_ID );
function session_error_handling_function($code, $msg, $file, $line) {
// Permission denied for default session, try to create a new one
if ($code == 2) {
session_abort();
session_id(session_create_id());
@session_start();
}
}
set_error_handler('session_error_handling_function');
session_start();
restore_error_handler();
}
//Generating CSRF Token
if (empty($_SESSION['token'])) {
if (function_exists('random_bytes')) {
$_SESSION['token'] = bin2hex(random_bytes(32));
} else {
$_SESSION['token'] = bin2hex(openssl_random_pseudo_bytes(32));
}
}
if (empty($auth_users)) {
$use_auth = false;
}
$is_https = isset($_SERVER['HTTPS']) && ($_SERVER['HTTPS'] == 'on' || $_SERVER['HTTPS'] == 1)
|| isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https';
// update $root_url based on user specific directories
if (isset($_SESSION[FM_SESSION_ID]['logged']) && !empty($directories_users[$_SESSION[FM_SESSION_ID]['logged']])) {
$wd = fm_clean_path(dirname($_SERVER['PHP_SELF']));
$root_url = $root_url.$wd.DIRECTORY_SEPARATOR.$directories_users[$_SESSION[FM_SESSION_ID]['logged']];
}
// clean $root_url
$root_url = fm_clean_path($root_url);
// abs path for site
defined('FM_ROOT_URL') || define('FM_ROOT_URL', ($is_https ? 'https' : 'http') . '://' . $http_host . (!empty($root_url) ? '/' . $root_url : ''));
defined('FM_SELF_URL') || define('FM_SELF_URL', ($is_https ? 'https' : 'http') . '://' . $http_host . $_SERVER['PHP_SELF']);
// logout
if (isset($_GET['logout'])) {
unset($_SESSION[FM_SESSION_ID]['logged']);
unset( $_SESSION['token']);
fm_redirect(FM_SELF_URL);
}
// Validate connection IP
if ($ip_ruleset != 'OFF') {
function getClientIP() {
if (array_key_exists('HTTP_CF_CONNECTING_IP', $_SERVER)) {
return $_SERVER["HTTP_CF_CONNECTING_IP"];
}else if (array_key_exists('HTTP_X_FORWARDED_FOR', $_SERVER)) {
return $_SERVER["HTTP_X_FORWARDED_FOR"];
}else if (array_key_exists('REMOTE_ADDR', $_SERVER)) {
return $_SERVER['REMOTE_ADDR'];
}else if (array_key_exists('HTTP_CLIENT_IP', $_SERVER)) {
return $_SERVER['HTTP_CLIENT_IP'];
}
return '';
}
$clientIp = getClientIP();
$proceed = false;
$whitelisted = in_array($clientIp, $ip_whitelist);
$blacklisted = in_array($clientIp, $ip_blacklist);
if($ip_ruleset == 'AND'){
if($whitelisted == true && $blacklisted == false){
$proceed = true;
}
} else
if($ip_ruleset == 'OR'){
if($whitelisted == true || $blacklisted == false){
$proceed = true;
}
}
if($proceed == false){
trigger_error('User connection denied from: ' . $clientIp, E_USER_WARNING);
if($ip_silent == false){
fm_set_msg(lng('Access denied. IP restriction applicable'), 'error');
fm_show_header_login();
fm_show_message();
}
exit();
}
}
// Checking if the user is logged in or not. If not, it will show the login form.
if ($use_auth) {
if (isset($_SESSION[FM_SESSION_ID]['logged'], $auth_users[$_SESSION[FM_SESSION_ID]['logged']])) {
// Logged
} elseif (isset($_POST['fm_usr'], $_POST['fm_pwd'], $_POST['token'])) {
// Logging In
sleep(1);
if(function_exists('password_verify')) {
if (isset($auth_users[$_POST['fm_usr']]) && isset($_POST['fm_pwd']) && password_verify($_POST['fm_pwd'], $auth_users[$_POST['fm_usr']]) && verifyToken($_POST['token'])) {
$_SESSION[FM_SESSION_ID]['logged'] = $_POST['fm_usr'];
fm_set_msg(lng('You are logged in'));
fm_redirect(FM_SELF_URL);
} else {
unset($_SESSION[FM_SESSION_ID]['logged']);
fm_set_msg(lng('Login failed. Invalid username or password'), 'error');
fm_redirect(FM_SELF_URL);
}
} else {
fm_set_msg(lng('password_hash not supported, Upgrade PHP version'), 'error');;
}
} else {
// Form
unset($_SESSION[FM_SESSION_ID]['logged']);
fm_show_header_login();
?>
Mature gay male dating sites offer singles a more mature and experienced dating pool. this can be a terrific way to find love if you’re trying to find an individual who is more knowledgeable and mature than your average dating website. there are many mature gay male dating sites available, so it is important to research thoroughly before signing up. remember to find a niche site that’s right for you. some of the benefits of utilizing a mature gay male dating website are you will have a more substantial pool of prospective partners to select from. you will have significantly more chance to find someone who is a great fit for you. there are various types of individuals on these sites, and that means you are sure to find someone who works with with you. mature gay male dating sites are a great way to find love. be sure to research your facts before enrolling, and find a website that is correct available.
Find an ideal partner with gay mature dating site
Looking for a partner that stocks your interests and life style? search no further versus gay mature dating site. with a database of over one million users, this site is perfect for those that are puertoricogayblog.com/mature-gay-dating.html looking for a long-term relationship. there are a variety of features which make this site unique. above all, the site is intended for those that are seeking a significant relationship. it is not a site that’s created for the ones that are searching for an instant fling. secondly, the site is made for the ones that are searching for a partner that stocks their exact same interests and lifestyle. this means you’ll not experience somebody which completely different than you. lastly, the site is designed to be discreet. this means that you will not have to worry about anybody comprehending that you are searching for somebody which just like you. if you should be interested in a site that is designed especially for those that are searching for a mature partner, then the gay mature dating site could be the perfect site for you.
Enjoy a safe and safe environment for mature gay dating
Mature gay dating sites offer a breeding ground that is safe and secure for those of you searching for a relationship. these sites offer many different features that make it possible for users for connecting with others. a few of the features that are available on these websites consist of chat rooms, community forums, and dating pages. a few of the advantages that are available on these websites range from the capability to interact with other individuals who are looking for an identical relationship, the ability to find someone who works with, additionally the capacity to find someone who is an excellent match for you personally.
Learn how to make probably the most of mature gay male dating sites
Mature gay male dating sites are a great way to find someone that is suitable for your lifestyle. these sites were created for folks who are searching for a long-term relationship, and so they provide a number of features making it no problem finding a match. among the best reasons for having these sites is the fact that they have been designed for people who are selecting a critical relationship. a majority of these sites provide features which make it simple to find somebody who is appropriate for your lifestyle. like, a number of these sites provide features that enable you to find matches centered on your passions and life style.
Tips in making probably the most of your mature gay male dating experience
If you are looking for an even more fulfilling and intimate dating experience, then you must look into dating sites catering to mature gay guys. here are a few tips for maximizing your experience on these sites:
1. be upfront regarding the objectives. when you first sign up for a mature gay male dating site, be upfront about your objectives. always are clear in what you are searching for in a relationship. looking for an informal encounter or something like that much more serious? have you been open to dating other males or perhaps females? do you want to travel for dates? are you willing to spending some time fulfilling individuals personally? 2. expect you’ll put in the time and effort. most mature gay male dating sites aren’t easy to use. they might require some work on your part to get matches. you have to be willing to devote the time and effort to obtain the right individual. 3. have patience. if you’re not comfortable with the idea of dating older guys, then these sites are not for you personally. be patient and give these sites a try. you may well be amazed at how much enjoyable you can have on these sites. 4. be prepared to be yourself. dating sites providing to mature gay guys are not for all. these sites are made for folks who are open-minded and want to find someone who shares their exact same passions. 5.
Meet singles regarding the best gay mature dating site
General subject:
seeking a dating site that caters particularly to mature gay singles? search no further than the best gay mature dating site on the internet! with a person base that spans all ages and backgrounds, this site is perfect for anybody trying to find a critical relationship. great things about utilising the gay mature dating site
there are a variety of advantageous assets to utilising the gay mature dating site. above all, it’s perhaps one of the most popular dating sites on the web. with over two million members, it is certain to have one thing for all. second, the site is designed designed for mature gay singles. this means there is certainly a larger potential for finding a relationship that is right available. third, the site is user-friendly and easy to make use of. which means that you’ll have no difficulty finding matches which can be compatible with you. finally, the site provides some features making it unique. including, the site provides a matching system which built to find suitable matches. in addition, the site provides a number of discussion boards which can be perfect for discussing relationships and dating. why utilize the gay mature dating site? there are numerous of explanations why you need to use the gay mature dating site. so just why not give the gay mature dating site a go today? you won’t be disappointed!
Meet like-minded individuals who share your values and goals
Mature gay black dating is a great way to find those who share your values and goals. with so many singles on the web, it may be hard to find the right individual. however with mature gay black dating, you can find someone who shares your passions and values. this is a terrific way to find a person who it is possible to relate solely to on a deeper degree. there are a lot of great mature gay black dating internet sites online. you will find sites that are centered on dating, or sites which are dedicated to conference individuals for friendship. whichever site you choose, you will be certain that you’ll find the best individuals. first, there is people who share your same interests. next, you can find those who are compatible with you. which means you will not need to worry about compatibility issues. if you are seeking a method to find those who share your values and objectives, then mature gay black dating may be the approach to take. with many great web sites nowadays, its difficult to choose the best one. however with just a little research, you’ll be able to to get the right site.