Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <php
- try {
- $db = new PDO("mysql:host=$host; dbname=$db", $user, $pwd);
- $db->setAttribute(PDO:: ATTR_ERRMODE, PDO:: ERRMODE_EXCEPTION);
- $db-> exec("set names utf8");
- }
- catch(PDOException $e) {
- echo $e->getMessage();
- }
- /**
- * REGISTRATION
- **/
- // Проверка данных пользователя при его регистрации на сайте
- $data = $_POST;
- if (isset($data['reg-submit'])) {
- $errors = array();
- if (trim($data['login']) == '' ) {
- $errors[] = 'Введите логин';
- }
- if (($data['email']) == '' ) {
- $errors[] = 'Введите e-mail';
- }
- if (($data['password']) == '' ) {
- $errors[] = 'Введите пароль';
- }
- }
- // Если поля заполнены, в переменные записываем введенное
- $login = $data['login'];
- $email = $data['email'];
- $pass = password_hash($data['password'], PASSWORD_DEFAULT);
- // Если нет ошибок (т.е. все поля заполнены корректно),
- // осуществляем проверку на то, чтобы юзер не зарегался 2 раза с тем же эмейлом
- if (empty($errors)) {
- try {
- $query="SELECT login, email FROM users WHERE email = ' . $db->quote($email) . ' OR login = ' . $db->quote($login) . '";
- $query_res = $db->query($query);
- $count = count($query_res->fetchAll());
- // Если найдены, значит логин/эмайл заняты, не регистрируенм, а выводим ошибку
- if ($count > 0) {
- exit("email или login занят!");
- } else {
- $sql = "INSERT INTO users (login, email, password)
- VALUES (" . $db->quote($login) . ", " . $db->quote($email) . ", " . $db->quote($pass) . ")";
- $db->exec($sql);
- echo '<div class="okreged">Вы успешно зарегистрированы! <a href = "/test/index.php">Перейти на главную</a></div>';
- }
- }
- catch(PDOException $e) {
- echo $e->getMessage();
- }
- } else {
- echo '<div class="notreged">'.array_shift($errors).'</div>';
- }
- ?>
Add Comment
Please, Sign In to add comment