@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 создать пользователя, то пароль отображается
  • Вопрос задан
  • 262 просмотра
Решения вопроса 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 = '';, он перезаписывает Вашу переменную на пустую строку.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
25 апр. 2024, в 11:02
5000 руб./за проект
25 апр. 2024, в 10:42
150000 руб./за проект
25 апр. 2024, в 10:41
2000 руб./за проект