'$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();
?>
Which Stunning 89-Year-Dated Grandmother Took The brand new Inform you Because the A bridal
You may be never too-old as a wedding — just inquire bride Christine Quinn’s 89-year-dated granny Betty Govern, a great.k.good. Nana Betty.
At Christine’s Could possibly get dos wedding to help you Patrick Quinn (which is also the happy couple offers a similar surname!) when you look at the Plymouth Fulfilling, Pennsylvania, Nana Betty stood by her granddaughter’s front inside the a dirty yellow skirt which have an effective bouquet available.
“You’re simply as old because you feel and i feel younger today,” Nana Betty told you to the special day, with regards to the fiance.
Christine told This new Huffington Article that choice to inquire of their particular granny to settle new maid of honor try a no-brainer; She takes into account Nana Betty one of their close friends.
“Whenever you are she cannot live you to definitely romantic, we have continuously caused it to be a point to spend normally day together as you are able to,” she told you. “She simply possess an amazing kissbrides.com pistГ¤ydy nГ¤iden kavereiden luona sense of humor and you may frame of mind for the life which i strive to imitate daily. I adore their own.”
But a few months until the wedding, Christine requested Nana Betty as a bridesmaid “so she did not have a lot of time available it.” The new bride never ever questioned her to actually say “yes” because their unique grandmother was modest and you may cannot delight in as the heart of attention.
“She questioned me on the ten times, ‘Are your sure?’ and you can ‘Why could you need a classic woman on your bridesmaids?’” Christine told HuffPost. “From time to time she actually told you ‘All of the bridesmaids is younger and you can rather, why must you desire me?’ Without a doubt Nana are stunning also. Only check those people photographs!”
“She had the entire wedding party laughing together with her terminology from skills and you will comedy statements from day to night,” Christine told you.
Help HuffPost
“Nana had for the group coach the rest of the brand new marriage party as opposed to ‘going the place to find rest’ but didn’t tell my personal mother (their child),” the fresh new bride-to-be said. “She and additionally danced the complete nights out, together with a lovable minute whenever she and you will my personal husband’s grandmother, Bellsie, danced together. It actually was incredible.”
Credit: AMBPhoto”,”source”:””,”title”:”This cheeky program”,”type”:”image”,”summary”:””,”badge”:””,”cta”:[],”meta”:null,”credit”:””,”creditUrl”:””,”authorship”:<"author":<"id":"000000000000000000000000","bio":<>,”urls”:<>,”urlName”:<"text":"","transliterated":"">>>,”social”:<>,”thumbnail”:<"url":<"fileName":"559c53991a000080003caf10.jpeg","type":"hectorUrl">,”caption”:”\”A practical guide to not falling asleep and figuring out just what exactly is going on.\” \n
Credit: Cassandre Snyder “,”source”:””,”title”:”But if we’re talking actual booze, then this pairing”,”type”:”image”,”summary”:””,”badge”:””,”cta”:[],”meta”:null,”credit”:””,”creditUrl”:””,”authorship”:<"author":<"id":"000000000000000000000000","bio":<>,”urls”:<>,”urlName”:<"text":"","transliterated":"">>>,”social”:<>,”thumbnail”:<"url":<"fileName":"559c539a1a000080003caf11.jpeg","type":"hectorUrl">,”caption”:”No, your eyes do not deceive you. Those are mini-taco chasers. \n
Credit: David Childers “,”source”:””,”title”:”This bounce house”,”type”:”image”,”summary”:””,”badge”:””,”cta”:[],”meta”:null,”credit”:””,”creditUrl”:””,”authorship”:<"author":<"id":"000000000000000000000000","bio":<>,”urls”:<>,”urlName”:<"text":"","transliterated":"">>>,”social”:<>,”thumbnail”:<"url":<"fileName":"559c539b1a000080003caf13.jpeg","type":"hectorUrl">,”caption”:”And you don’t even have to take turns because it’s your wedding day and you can do as you please. \n
Credit: Almond Leaf Studios “,”source”:””,”title”:”This pimped out dessert table”,”type”:”image”,”summary”:””,”badge”:””,”cta”:[],”meta”:null,”credit”:””,”creditUrl”:””,”authorship”:<"author":<"id":"000000000000000000000000","bio":<>,”urls”:<>,”urlName”:<"text":"","transliterated":"">>>,”social”:<>,”thumbnail”:<"url":<"fileName":"559c539b1a000080003caf12.jpeg","type":"hectorUrl">,”caption”:”Bonus points if you give your guests to-go boxes so they can eat their creations on the way home.\n
Credit: Jihan Abdalla Photography”,”source”:””,”title”:”This late-night food truck “,”type”:”image”,”summary”:””,”badge”:””,”cta”:[],”meta”:null,”credit”:””,”creditUrl”:””,”authorship”:<"author":<"id":"000000000000000000000000","bio":<>,”urls”:<>,”urlName”:<"text":"","transliterated":"">>>,”social”:<>,”thumbnail”:<"url":<"fileName":"559c539b1a000080003caf14.jpeg","type":"hectorUrl">,”caption”:”Your guests are definitely going to work up an appetite on the dance floor.\n
A more powerful, Pleased 2024
In the HuffPost, we believe that everyone requires high-quality news media, however, we understand that not everybody is able to manage to buy high priced development memberships. This is why our company is dedicated to bringing seriously advertised, cautiously facts-seemed development that’s freely open to folks.
If you started to HuffPost having condition for the 2024 presidential race, hard-striking investigations toward vital activities facing our very own nation now, otherwise popular tales that make your laugh, we take pleasure in your. The truth is, reports costs money to create, therefore try satisfied that individuals never have place all of our reports trailing a costly paywall.
Are you willing to sign-up us to could keep our very own reports free getting all of the? Their contribution from as little as $dos goes a long way.
This is your second to build a more content, more powerful lifestyle – and you can HuffPost will be here so you’re able to exercise. Our very own reporters believe in search, qualified advice and resided skills to address all of your concerns, big and small. As soon as you have got issues, you are aware you can trust our answers.
We have been calculated to keep HuffPost Life – and any other part of HuffPost – 100% free. Allow us to accomplish that by the contributing only $dos.
It’s your moment to create a pleased, more powerful lifetime – and you can HuffPost is here in order to do so. We’ve got you covered for the anything from health so you can restaurants so you can dating, and a whole lot. The journalists have confidence in browse, qualified advice and resided experience to handle your issues, big and small. Once you’ve got issues, you are sure that you can rely on our answers.
The audience is computed to save HuffPost Life – and any other section of HuffPost – 100% totally free. Allow us to do that from the adding as little as $dos.
Leave a Reply