mirror of
https://github.com/Znote/ZnoteAAC.git
synced 2025-04-29 18:59:21 +02:00

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.
94 lines
2.6 KiB
PHP
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';
|
|
?>
|