ZnoteAAC/settings.php
Znote be8b882166 Possibility to reward users with shop points if they verify their email
Also generates a new activation key after they have verified their email in-case they change their email and guess the activation link for their fake email.
Also removes the given points until they verify their email again if they change their email.
2019-10-23 21:06:24 +02:00

94 lines
2.6 KiB
PHP

<?php
require_once 'engine/init.php';
protect_page();
include 'layout/overall/header.php';
require_once('config.countries.php');
if (empty($_POST) === false) {
// $_POST['']
/* Token used for cross site scripting security */
if (!Token::isValid($_POST['token'])) {
$errors[] = 'Token is invalid.';
}
$required_fields = array('new_email', 'new_flag');
foreach($_POST as $key=>$value) {
if (empty($value) && in_array($key, $required_fields) === true) {
$errors[] = 'You need to fill in all fields.';
break 1;
}
}
if (empty($errors) === true) {
if (filter_var($_POST['new_email'], FILTER_VALIDATE_EMAIL) === false) {
$errors[] = 'A valid email address is required.';
} else if (user_email_exist($_POST['new_email']) === true && $user_data['email'] !== $_POST['new_email']) {
$errors[] = 'That email address is already in use.';
}
}
}
?>
<h1>Settings</h1>
<?php
if (isset($_GET['success']) === true && empty($_GET['success']) === true) {
echo 'Your settings have been updated.';
} else {
if (empty($_POST) === false && empty($errors) === true) {
$update_data = array(
'email' => $_POST['new_email']
);
$update_znote_data = array(
'flag' => getValue($_POST['new_flag']),
'active_email' => '0'
);
// If he had previously verified his email address, remove the previously aquired bonus points
if ($user_znote_data['active_email'] > 0) {
$update_znote_data['points'] = $user_znote_data['points'] - $config['mailserver']['verify_email_points'];
}
user_update_account($update_data);
user_update_znote_account($update_znote_data);
header('Location: settings.php?success');
exit();
} else if (empty($errors) === false) {
echo output_errors($errors);
}
?>
<form action="" method="post">
<ul>
<li>
email:<br>
<input type="text" name="new_email" value="<?php echo $user_data['email']; ?>">
</li>
<li>
Country:<br>
<select name="new_flag" id="flag_select">
<option value="">(Please choose)</option>
<?php
foreach(array('pl', 'se', 'br', 'us', 'gb', ) as $c)
echo '<option value="' . $c . '">' . $config['countries'][$c] . '</option>';
echo '<option value="">----------</option>';
foreach($config['countries'] as $code => $c)
echo '<option value="' . $code . '"' . (isset($user_znote_data['flag']) && $user_znote_data['flag'] == $code ? ' selected' : '') . '>' . $c . '</option>';
?>
</select>
</li>
<?php
/* Form file */
Token::create();
?>
<li>
<input type="submit" value="Update settings">
</li>
</ul>
</form>
<?php
}
include 'layout/overall/footer.php';
?>