| 
<?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'];
 
 |