Как исправить скрипт регистрации на PHP (PDO)?

134
23 марта 2018, 13:37

Скрипт работает некорректно, пропускает всех желающих. Кто знает, в чем проблема и как ее исправить?

<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>';
}
?>
READ ALSO
Php, GD, узнать длину текста в px

Php, GD, узнать длину текста в px

Я видела, что в этом случае рекомендуют использовать imagettfbbox, но я никак не пойму какВозможно, вы подскажете другой способ?

131
PHP скрипт для сборса кеша Cloudflare

PHP скрипт для сборса кеша Cloudflare

Задача: PHP скриптом (php 56) отправлять запросы на API CloudFlare на сброс конкретного файла (картинки) из его кеша

156
Не приходят сообщения на почту?

Не приходят сообщения на почту?

Есть скрипт, кто заполнил заявку, тому отправляется, а копия Ректору не отправляется Вот ссылка на скрипт https://gistgithub

123
Видимость переменной?

Видимость переменной?

Есть файл на PHP в котором от API приходит ответ с токеном и записывается в переменнуюПотом при нажатии на кнопочку AJAX-ом подгружается другой...

110