jabrik
@jabrik
⏱ - is not eternal

Почему не добавляются в бд данные?

Доброго времени суток! У меня есть код, который добавляет данные в бд, но он перестал работать, когда добавил проверку на логин и емаил. В чем проблема? Помогите

<?
  $username = trim(filter_var($_POST['username'], FILTER_SANITIZE_STRING));
  $email = trim(filter_var($_POST['email'], FILTER_VALIDATE_EMAIL));
  $login = trim(filter_var($_POST['login'], FILTER_SANITIZE_STRING));
  $pass = trim(filter_var($_POST['pass'], FILTER_SANITIZE_STRING));

  $error = '';
  if(strlen($username) <= 3)
    $error = 'Введите имя';
  else if(strlen($email) <= 3)
    $error = 'Введите email';
  else if(strlen($login) <= 3)
    $error = 'Введите логин';
  else if(strlen($pass) <= 3)
    $error = 'Введите пароль';

  if($error != '') {
    echo $error;
    exit();
  }

  $hash = "sghasoghwoghweghwsdsbc";
  $pass = md5($pass . $hash);

  require_once '../mysql_connect.php';

  // Логин
  $sql_login = 'SELECT * FROM users WHERE login = ?';
  $query_login = $pdo->prepare($sql_login);
  $query_login->execute([$login]);
  $user = $query_login->fetch();
  
  // Email
  $sql_email = 'SELECT * FROM users WHERE email = ?';
  $query_email = $pdo->prepare($sql_email);
  $query_email->execute([$email]);
  $email = $query_email->fetch();
  
  if ($user) { 
    exit('Логин уже занят');
  } elseif ($email) {
    exit('Email уже занят');
  } else {
    $sql = 'INSERT INTO users(name, email, login, pass) VALUES(?, ?, ?, ?)';
    $query = $pdo->prepare($sql);
    $query->execute([$username, $email, $login, $pass]);

    echo "Готово";
  }


?>


Где добавил проверку отметил комментариями "логин & емаил". После else не работает insert into
  • Вопрос задан
  • 29 просмотров
Решения вопроса 1
jabrik
@jabrik Автор вопроса
⏱ - is not eternal
А все я решил. Надо было просто добавить значения по умолчание тем обьектам, в которых нет значений по умолчанию
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы