'$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();
?>
While no bodyshould dispute this hasn’t been annually we want to duplicate, online dating has done pretty well, with higher quantities of singles joining online dating systems, and looking for electronic marketing options.
Recently, Andreessen Horowitz, a venture capital and exclusive equity company, has published an interesting document, examining how personal apps have carried out, and which have been winning the competition of individual involvement!
As part of a set titled
Personal Moves Right Back
, this looks at how social media market is expanding, carrying out, and establishing to produce brand-new, future programs.
â
Analysing Dating Software Triumph in 2020
â
Therefore, which are the conditions for a dating application which is doing well? There are numerous metrics we can think about:
Simply how much business it’s gained.
Exactly how many new users have accompanied the platform.
Consumer retention numbers.
How long a normal user spends about application.
Rating and critiques on app shops.
The number of instances a person opens the software.
Just what additional features, resources or functions happen released.
How widely accessible the app should grab.
There’s a lot to take-in there – but it’s necessary to bear in mind that merely having millions of users does not mean that a relationship platform does a great job! If 80% of the an incredible number of users do not ever utilize the software, or log on once a twice four weeks, including, it’s probably be decreasing in sensed importance and user experience.
The most important factors this document thinks is ‘stickiness’ – that is the concept and something which is perfectly relatable also to those of us who happen to ben’t familiar with app performance metrics!
What’s stickiness? Oahu is the ratio of the amount of customers login daily, on average, and just how a lot of visit every month. Comparing the everyday users into the monthly people measures whether a dating app keeps growing, contracting, or remaining where it’s.
If that stickiness ratio is actually 33%, that means an average user logs on ten times every month.
â
Which online dating sites Have Grown within the last one year?
â
Let’s summarise the document conclusions, and watch who is outperforming the market inside most strange of many years!
Before we explain to you these categories, let us remember that the common stickiness standing for internet dating apps concerns 81percent (when compared with 92per cent on general social media). So we’re looking at dating systems being topping the scores within market.
Finest Constant Active Customers:
Tinder
â
Fastest Expanding Dating Software:
Hinge
â
Most Readily Useful Stickiness Rating:
Bumble
â
Finest Consumer Retention Figures:
MeetMe
â
Longest Energy Spent per Constant User: MeetMe.
We have now also seen some fascinating stats concerning systems which are not explicitly matchmaking, but could fall into that group as networking internet sites – programs standing as top-performers for the ‘friend finding’ class integrate
Yubo
,
ItsMe
and
IMVU
.
What-is-it these particular internet dating programs are performing proper – and exactly how have actually they arrive from top regarding respective classes?
Discover all sorts of reasons:
â
Bumble established fact as a dating software that will be dedicated to female consumers and their user experience. In an industry where online spam, rubbish and explicit communications are not unusual, this fresh approach has urged many women to become listed on the software, and stay there.
Tinder has a huge individual base, and also the greatest everyday active people – but it’s worthwhile considering this particular does not equate to user engagement but implies that millions of people log on per day, but might just remain there for a minute or two.
Hinge is an additional disruptor, explaining by itself as an application ‘designed to be erased’. The concept is, you utilize it to track down a geniune match or union lover; and do not waste several hours of time scrolling and swiping! Clearly, this approach resonates well.
MeetMe can be topping out both user preservation figures, while the most time invested per everyday individual on the site. The reason why? It’s free to message, has a user base of 7 million individuals plus from inside the UK, and you can change your options to display details only to friends, therefore it is a hybrid messaging/social networking/dating app with an age element only 13 years old.
â
Exactly how tend to be Dating programs Set to Change in 2021?
â
It appears obvious that what the online dating customer group is seeking, is actually software that offer a certain spin, a distinct segment, a context that steps beyond the norm, and offers a personal experience that’s more exciting than your current matchmaking and swiping.
As brand new years of younger marketing website people begin to use smart phones and downloading apps, additionally it is no surprise that a program catering to kids is rising swiftly in the ranking.
Older social networking systems are never favored by more youthful children. Therefore, as myspace began as an unconventional and contemporary application, its today employed by an ageing user base with all the
average individual centuries
becoming:
Era 13-17: 4.6percent
Era 18-24: 16per cent
Age 25-34: 24.7percent
Era 35-44: 18.6%
Age 45-54: 15.4per cent
Age 55-64: 11.1per cent
Era 65+: 9.5percent
You’re not planning to want to use a social media marketing app where the Nan is actually posting position revisions everyday. Developers will always seeking trends and brand new encounters that capture the creative imagination associated with subsequent generation, and design anything designed in their eyes.
Dating is no different; mobile programs are actually recommended, aided by the most of users wishing the flexibleness to talk to their smartphones, and tell you their particular fits in the travel, versus sitting at a pc looking forward to their unique next email notice.
Apps that are quickly, user-friendly, offer superb usability, and artistic media may prominent. Typical messaging is changed by live telephone calls, movie articles and entertaining characteristics making it uncomplicated getting an understanding for a personality than you had get from a number of sentences on a profile page.
Andreessen Horowitz
describes
it as a vertical society; a software that’s explicitly designed all over interests of the intended individual base, which motivates posting, and features that cater to those hobbies.
It seems most likely weare going to see far more added-value advantages; particularly events, podcasts, blogs, tournaments and marketing that expand about dating knowledge to really make it a great deal more about inclusivity, provided experiences, and discovering the group.
â
See the complete document
right here
, and tell us what you think about these reviews, and if you think next season will discover newer and more effective contenders topping the ranks!