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

144
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, но я никак не пойму какВозможно, вы подскажете другой способ?

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

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

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

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

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

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

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

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

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

121