Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
Downloads
/
vfm-admin
/
ajax
:
usr-reg.php
Voltar
Back Up
Advanced Editor
Save
<?php /** * VFM - veno file manager: ajax/usr-reg.php * * Send email to new pending user * * PHP version >= 5.3 * * @category PHP * @package VenoFileManager * @author Nicola Franchini <support@veno.it> * @copyright 2013 Nicola Franchini * @license Exclusively sold on CodeCanyon * @link http://filemanager.veno.it/ */ if (!isset($_SERVER['HTTP_X_REQUESTED_WITH']) || (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) !== 'xmlhttprequest') ) { exit; } require_once dirname(__DIR__).'/class/class.setup.php'; require_once dirname(__DIR__).'/class/class.utils.php'; require_once dirname(__DIR__).'/class/class.gatekeeper.php'; require_once dirname(__DIR__).'/class/class.updater.php'; require_once dirname(__DIR__).'/class/class.template.php'; $setUp = new SetUp(); $gateKeeper = new GateKeeper(); $lang = $setUp->lang; $newusers = $gateKeeper->getUsersNew(); $newusers = $newusers ? $newusers : array(); $updater = new Updater(); $setfrom = $setUp->getConfig('email_from'); if (!$setfrom || !strlen($setfrom)) { echo $setUp->getString("setup_email_application")."<br>"; exit(); } $filterType = array( 'string' => FILTER_SANITIZE_SPECIAL_CHARS, 'integer' => FILTER_VALIDATE_INT, ); $post = array(); // filter inputs foreach ($_POST as $key => $value) { $filter = $filterType[gettype($value)]; $value = filter_var($value, $filter); $post[$key] = $value; } $post = array_filter($post, 'strlen'); $postname = filter_input(INPUT_POST, "user_name", FILTER_SANITIZE_SPECIAL_CHARS); $postpass = isset($_POST['user_pass']) ? $_POST['user_pass'] : false; $postpassconfirm = isset($_POST['user_pass_confirm']) ? $_POST['user_pass_confirm'] : false; $postmail = filter_input(INPUT_POST, 'user_email', FILTER_VALIDATE_EMAIL); if (!$postname || !$postmail || !$postpass || !$postpassconfirm) { echo '<div class="alert alert-warning" role="alert">'.$setUp->getString("fill_all_fields").' *</div>'; exit(); } $postname = preg_replace('/\s+/', '', $postname); // minimum username length if (strlen($postname) < 3) { echo '<div class="alert alert-danger" role="alert">'.$setUp->getString("minimum").' 3 chars</div>'; exit(); } // passwords mismatch if ($postpass !== $postpassconfirm) { echo '<div class="alert alert-danger" role="alert">'.$setUp->getString("passwords_dont_match").'</div>'; exit(); } // username already exists if ($updater->findUser($postname)) { echo '<div class="alert alert-danger" role="alert"><strong>'.$postname.'</strong> '.$setUp->getString("file_exists").'</div>'; exit(); } // e-mail already exists if ($updater->findUser($postmail, true)) { echo '<div class="alert alert-warning" role="alert"><strong>'.$postmail.'</strong> '.$setUp->getString("file_exists").'</div>'; exit(); } // check capcha if (!Utils::checkCaptcha('show_captcha_register')) { echo '<div class="alert alert-warning" role="alert">'.$setUp->getString("wrong_captcha").'</div>'; exit(); } // if is already on pre-registration // send again an activation link $prereguser = $updater->findUserPre($postmail, true); // mail exist in pre-reg if ($prereguser) { // username is different from the first associated to this e-mail // resend activation mail with first username chosen echo '<div class="alert alert-warning" role="alert"><strong>'.$postmail.'</strong> '.$setUp->getString("file_exists").'</div>'; if ($prereguser !== $postname) { $postname = $prereguser['name']; } } else { // e-mail has never been used, check if username is alredy pre-registered if ($updater->findUserPre($postname)) { echo '<div class="alert alert-warning" role="alert"><strong>'.$postname.'</strong> '.$setUp->getString("file_exists").'</div>'; exit(); } } $salt = $setUp->getConfig('salt'); $appurl = $setUp->getConfig('script_url'); if (!$prereguser) { $newuser = array(); $newuser['name'] = $postname; $newuser['pass'] = crypt($salt.urlencode($postpass), Utils::randomString()); $newuser['email'] = $postmail; // remove standard fields unset($post['user_name'], $post['user_pass'], $post['user_pass_confirm'], $post['user_email'], $post['captcha'], $post['g-recaptcha-response']); // loop remaining custom fields foreach ($post as $custom => $value) { $newuser[$custom] = $value; } $date = date("Y-m-d-H-i-s", time()); $newuser['date'] = $date; $activekey = md5($postname.$salt.$date); $newuser['key'] = $activekey; $activationlink = $appurl."?act=".$activekey; array_push($newusers, $newuser); } else { $date = $prereguser['date']; $activekey = md5($postname.$salt.$date); $activationlink = $appurl."?act=".$activekey; } use PHPMailer\PHPMailer\PHPMailer; require_once dirname(__DIR__).'/assets/mail/vendor/autoload.php'; $mail = new PHPMailer(); $mail->CharSet = 'UTF-8'; $mail->setLanguage($lang); if ($setUp->getConfig('smtp_enable') == true) { $mail->isSMTP(); $mail->SMTPDebug = ($setUp->getConfig('debug_smtp') ? 2 : 0); $mail->Debugoutput = 'html'; $smtp_auth = $setUp->getConfig('smtp_auth'); $mail->Host = $setUp->getConfig('smtp_server'); $mail->Port = (int)$setUp->getConfig('port'); $mail->SMTPOptions = array( 'ssl' => array( 'verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true, ) ); if ($setUp->getConfig('secure_conn') !== "none") { $mail->SMTPSecure = $setUp->getConfig('secure_conn'); } $mail->SMTPAuth = $smtp_auth; if ($smtp_auth == true) { $mail->Username = $setUp->getConfig('email_login'); $mail->Password = $setUp->getConfig('email_pass'); } } $appname = html_entity_decode($setUp->getConfig('appname')); $mail->setFrom($setfrom, $appname); $mail->addAddress($postmail, '<'.$postmail.'>'); $mail->Subject = $setUp->getString('activate_account'); $altmessage = $setUp->getString('follow_this_link_to_activate')."/n".$activationlink; $email_logo = $setUp->getConfig('email_logo', false) ? '../_content/uploads/'.$setUp->getConfig('email_logo') : '../images/px.png';; $mail->AddEmbeddedImage($email_logo, 'logoimg'); // Retrieve the email template required $message = file_get_contents(Template::getMailTemplate('template-activate-account')); // Replace the % with the actual information $message = str_replace('%app_url%', $appurl, $message); $message = str_replace('%app_name%', $appname, $message); $message = str_replace( '%translate_follow_this_link_to_activate%', $setUp->getString('follow_this_link_to_activate'), $message ); $message = str_replace( '%activation_link%', $activationlink, $message ); $message = str_replace( '%translate_activate%', $setUp->getString('activate'), $message ); $message = str_replace( '%translate_username%', $setUp->getString('username').": <strong>".$postname."<strong>", $message ); $mail->msgHTML($message); $mail->AltBody = $altmessage; if (!$mail->send()) { echo '<div class="alert alert-danger" role="alert">Mailer Error: ' .$mail->ErrorInfo.'</div>'; } else { if ($updater->updateRegistrationFile($newusers)) { echo '<div class="alert alert-success" role="alert">'.$setUp->getString('activation_link_sent').'</div>'; } else { echo '<div class="alert alert-danger" role="alert"><strong>users-new</strong> file update failed</div>'; } } exit;