<?php 
$upload = new \Farisc0de\PhpFileUploading\Upload(new \Farisc0de\PhpFileUploading\Utility()); 
 
$mailer = new Uploady\Mailer($db); 
 
$tpl = new Uploady\Template('template/emails'); 
 
if ($_SERVER['REQUEST_METHOD'] == 'POST') { 
    $username = $utils->sanitize($_POST['username']); 
    $email = $utils->sanitize($_POST['email']); 
    $password = $utils->sanitize($_POST['password']); 
 
    if (!$user->isExist($email) && !$user->isExist($username)) { 
        if (isset($_POST['recaptcha_response'])) { 
            $recaptcha = new \ReCaptcha\ReCaptcha($settings->getSettingValue('recaptcha_secret_key')); 
 
            $resp = $recaptcha->setChallengeTimeout(60) 
                ->setExpectedAction("login_form") 
                ->setScoreThreshold(0.5) 
                ->verify($_POST['recaptcha_response'], $_SERVER['REMOTE_ADDR']); 
 
            if (!$resp->isSuccess()) { 
                $error = $lang["general"]["recaptcha_failed"]; 
            } 
        } 
 
        if (!isset($error)) { 
            $token = bin2hex(random_bytes(16)); 
 
            $hash = hash("sha256", $token); 
 
            $upload->generateUserID(); 
 
            $user->add([ 
                'username' => $username, 
                'email' => $email, 
                'password' => password_hash($password, PASSWORD_BCRYPT), 
                'user_id' => $upload->getUserID(), 
                "api_key" => bin2hex(random_bytes(16)), 
                'activation_hash' => $hash, 
                'is_active' => 0 
            ]); 
 
            $mailer->sendMessage( 
                $email, 
                $lang["general"]['activation_email_subject'], 
                $tpl->loadTemplate('activation_email', [ 
                    'username' => $username, 
                    'activation_url' => $utils->siteUrl("/activate.php?token=$token") 
                ]) 
            ); 
 
            $msg = $lang["general"]['signup_success']; 
        } 
    } else { 
        $error = $lang["general"]['user_already_exist']; 
    } 
} 
 
$page = "signupPage"; 
$title = $lang["general"]['signup_title']; 
 
 |