You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

97 lines
4.0 KiB
PHP

<?php
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
require_once __DIR__ . "/../../lib/Email.lib.php";
$badcode = false;
if (!empty($_POST['email'])) {
if (!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
header("Location: ./?page=renew&msg=bademail");
die("That email address doesn't look right. Please try again.");
}
if (!$database->has("families", ['email' => strtolower($_POST['email'])])) {
header("Location: ./?page=renew&msg=noemail");
die("We don't have that email on file for any current families.");
}
$code = mt_rand(100000, 999999);
$_SESSION['code'] = $code;
$_SESSION['maybefamily'] = $database->get('families', 'familyid', ['email' => strtolower($_POST['email'])]);
try {
$verification = new Email();
$verification->addTo(NOTIFICATION_TO);
$verification->setFrom(SMTP_FROMADDRESS, SMTP_FROMNAME);
$verification->setSMTP(SMTP_HOST, SMTP_PORT, SMTP_AUTH, SMTP_USERNAME, SMTP_PASSWORD, SMTP_SECURITY);
$verification->setSubject("HACHE email verification");
$verification->setBody("The verification code for renewing your HACHE membership is $code.");
$verification->send();
} catch (Exception $e) {
}
} else if (!empty($_POST['code'])) {
if (empty($_SESSION['code'])) {
header("Location: ./?page=renew&msg=sessionexpired");
die("You took too long and were automatically logged out. Please try again.");
}
if (preg_replace("/[^0-9]/", "", $_POST['code']) == $_SESSION['code']) {
$_SESSION['familyid'] = $_SESSION['maybefamily'];
header("Location: ./?page=signup");
die("You are verified, go to ./?page=signup");
}
$badcode = true;
} else {
header("Location: ./?page=renew&msg=bademail");
die("That email address doesn't look right. Please try again.");
}
?>
<div class="container mt-4">
<div class="row justify-content-center">
<div class="card mb-4 col-lg-8">
<div class="card-body">
<div class="text-center">
<img class="img-fluid mb-4" style="max-height: 100px; min-width: 100px;" src="static/hachelogo.svg" alt="HACHE: Helena Area Christian Home Educators"/>
<h1>Renew Your Membership</h1>
<div class="card-text">
<p>
Enter the code from the email we just sent you.
If you didn't get it, check your spam or junk folder.
</div>
<?php
if ($badcode) {
?>
<div class="alert alert-danger">
The code you entered is incorrect.
</div>
<?php
}
?>
<form action="./?page=verify" method="POST">
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text">
<span class="fa-layers fa-fw mr-2">
<i class="fas fa-2x fa-hashtag"></i>
</span>
</span>
</div>
<input type="text" class="form-control" style="font-size: 40px; letter-spacing: 10px;" name="code" placeholder="000000" maxLength="6" autofocus />
<div class="input-group-append">
<button type="submit" class="btn btn-primary">Verify <i class="fas fa-chevron-right"></i></button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>