@iiideb
Пишу роботов на html

Почему в БД не заносится пароль?

Не заносится в БД mysql только пароль, всё остальное вносится нормально
$username = trim(filter_var($_POST['username'], FILTER_SANITIZE_STRING));
	$email = trim(filter_var($_POST['email'], FILTER_SANITIZE_EMAIL));
	$login = trim(filter_var($_POST['login'], FILTER_SANITIZE_STRING));
	$password = trim(filter_var($_POST['password'], FILTER_SANITIZE_STRING));

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

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

	$hash = "3h#%89*H#($h%!~fh";
	$password = md5($password);

	require "../sqlconnect.php"; #Подключение к бд через pdo
	
	$sql = 'INSERT INTO `userinfo` (`name`, `email`, `login`, `password`) VALUES(?,?,?,?)';
	$query = $pdo->prepare($sql);
	$query->execute([$username, $email, $login, $password]);

	echo 'Готово';


Если через myadmin создать пользователя, то пароль отображается
  • Вопрос задан
  • 273 просмотра
Решения вопроса 1
IsSavinykh
@IsSavinykh
Full-Stack Веб-разработчик, мобильный разработчик
require "../sqlconnect.php"; #Подключение к бд через pdo

$username = trim(filter_var($_POST['username'], FILTER_SANITIZE_STRING));
  $email = trim(filter_var($_POST['email'], FILTER_SANITIZE_EMAIL));
  $login = trim(filter_var($_POST['login'], FILTER_SANITIZE_STRING));
  $password = trim(filter_var($_POST['password'], FILTER_SANITIZE_STRING));

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

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

  $hash = "3h#%89*H#($h%!~fh";
  $password = md5($password);
  
  $sql = 'INSERT INTO `userinfo` (`name`, `email`, `login`, `password`) VALUES(?,?,?,?)';
  $query = $pdo->prepare($sql);
  $query->execute([$username, $email, $login, $password]);

  echo 'Готово';

Достаточно местами поменять, ведь в подключаемом файле require "../sqlconnect.php"; -> $password = '';, он перезаписывает Вашу переменную на пустую строку.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы