php if is_user redirect name isset _POST name _POST name null email is

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
<?php
if (is_user()) redirect('/');
$name = isset($_POST['name']) ? $_POST['name'] : null;
$email = isset($_POST['email']) ? $_POST['email'] : null;
$pass = isset($_POST['pass']) ? $_POST['pass'] : null;
$sex = isset($_POST['sex']) ? (int) $_POST['sex'] : 0;
$day = isset($_POST['day']) ? (int) $_POST['day'] : 0;
$month = isset($_POST['month']) ? (int) $_POST['month'] : 0;
$year = isset($_POST['year']) ? (int) $_POST['year'] : 0;
$day_select = null;
$year_select = null;
for($i = 1; $i <= 31; ++$i)
$day_select .= '<option '.($day == $i ? 'selected' : null).' value="'.$i.'">'.$i.'</option>';
for($i = 2013; $i >= 1800; --$i)
$year_select .= '<option '.($year == $i ? 'selected' : null).' value="'.$i.'">'.$i.'</option>';
if (isset($_POST['continue'])) {
if (strlen($name) < 6 or strlen($name) > 18) {
$error[] = 'Недопустимая длина никнейма!';
} else if (!preg_match('/^([\w])+$/', $name)) {
$error[] = 'В никнейме присутствую запрещенные символы!';
} else if (current(DB::run()->query('SELECT COUNT(`id`) FROM `users` WHERE `name` = '.quote($name))->fetch(PDO::FETCH_NUM)) > 0) {
$error[] = 'Такой ник уже занят!';
}
if (empty($email)) {
$error[] = 'Вы не ввели E-mail!';
} else if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$error[] = 'Недопустимый формат E-mail!';
}
if (strlen($pass) < 8 or strlen($pass) > 32) {
$error[] = 'Недопустимая длина пароля!';
}
if (!in_array($sex, array(0, 1))) {
$error[] = 'Ошибка выбора пола!';
}
if ($day < 1 or $day > 31 or $month < 1 or $month > 12 or $year < 1800 or $year > 2013) {
$error[] = 'Ошибка при выборе даты рождения!';
}
if (!isset($error)) {
$data = array($name, hash_pass($pass), $email, $sex, $day, $month, $year, TIME);
DB::run()->prepare('INSERT INTO `users` (`name`, `pass`, `email`, `sex`, `day`, `month`, `year`, `date_reg`) VALUES (?, ?, ?, ?, ?, ?, ?, ?)')->execute($data);
$document->header('Успешная регистрация');
echo '<div class="post">Вы успешно прошли регистрацию!</div>
<a class="link2" href="/auth/">Авторизация &rarr;</a>';
$document->footer();
}
}
$name = xss($name);
$email = xss($email);
$document->header('Регистрация');
if (isset($error)) $document->error($error);
echo '<form method="POST" name="reg">
Никнейм [min 6, max 18]:<br />
<input type="text" name="name" value="'.$name.'" /><br />
E-mail [для восстановления пароля]:<br />
<input type="text" name="email" value="'.$email.'" /><br />
Пароль [min 8, max 32]:<br />
<input type="password" name="pass" /><br />
Ваш пол:<br />
<select name="sex">
<option value="0">Женский</option>
<option '.($sex == 1 ? 'selected' : null).' value="1">Мужской</option>
</select><br />
Дата рождения:<br />
<select name="day">'.$day_select.'</select>
<select name="month">
<option '.($month == 1 ? 'selected' : null).' value="1">Январь</option>
<option '.($month == 2 ? 'selected' : null).' value="2">Февраль</option>
<option '.($month == 3 ? 'selected' : null).' value="3">Март</option>
<option '.($month == 4 ? 'selected' : null).' value="4">Апрель</option>
<option '.($month == 5 ? 'selected' : null).' value="5">Май</option>
<option '.($month == 6 ? 'selected' : null).' value="6">Июнь</option>
<option '.($month == 7 ? 'selected' : null).' value="7">Июль</option>
<option '.($month == 8 ? 'selected' : null).' value="8">Август</option>
<option '.($month == 9 ? 'selected' : null).' value="9">Сентябрь</option>
<option '.($month == 10 ? 'selected' : null).' value="10">Октябрь</option>
<option '.($month == 11 ? 'selected' : null).' value="11">Hоябрь</option>
<option '.($month == 12 ? 'selected' : null).' value="12">Декабрь</option>
</select>
<select name="year">'.$year_select.'</select><br />
<input type="submit" name="continue" value="Продолжить регистрацию" />
</form>';
$document->footer();
?>