khannkzz
@khannkzz
хочу стать программистом

Можете сказать что здесь не так?

Можете подсказать почему данные не вводятся в базу данных. Ошибок никаких нету просто ничего не вводятся.

<?php
session_start();
$mysql = new mysqli('localhost','root','root','register-bd');    

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

    if($password === $password_confirm){
        //con...
        
        $mysql->query("INSERT INTO `users` ( `full_name`, `login`, `email`, `password`) VALUES ('$full_name', '$login', '$email', MD5('$password'))");
        $mysql->close();

        header('location: /' );
    }

    else{
        $_SESSION['message'] = 'Пароли не совпадают';
        header('Location: ../register.php');
    }

?>
  • Вопрос задан
  • 178 просмотров
Решения вопроса 1
bigton
@bigton
Web-программист
1. Неправильно используешь filter_*

Вместо $full_name = filter_var(trim($_POST['full_name']),FILTER_SANITIZE_STRING);
используй $full_name = filter_input(INPUT_POST, 'full_name', FILTER_SANITIZE_STRING, ['options' => ['default' => '']]);

2. Про md5 вообще забудь, сегодня минимум sha256 https://www.php.net/manual/ru/function.hash.php

3. Для кеширования и проверки паролей используй password_* функции https://www.php.net/manual/ru/ref.password.php

4. Никогда не передавай в SQL-выражения пользовательские данные напрямую, используй подготовленные запросы https://prowebmastering.ru/php-pdo-start.html

5. header('location: /') передает браузеру заголовок который говорит куда сделать переадресацию, эта функция не завершает выполнение кода. Ставь после header() exit();
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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