Задать вопрос
@official_a0
Веб разроботчик

Регистрация на php mysql, нужна помощь, кто знает?

Ребята делал тут свою регистрацию через бд,
Залил форма норм данные отправляются может кто знает где и в чём ошибка, щас скину скрин бд и коды регистрации!
бд:
<?php
$db = mysqli_connect (
   'localhost',
   'examam123_ur',
   'Хе-хе, не буду говориьь',
   'examam123_ur'
);

if(!$db) {
    print ('Ошибка подключения!');
}

mysqli_set_charset($set, 'utf8');

?>

Форма:
<html>
    <head>
        <meta charset="utf-8">
    </head>
    <body>
    <form method="post" action="reg.php">

<p>Имя:<input placeholder="Иван" type="text" name="name"></p><br />
<p>Фамилия:<input placeholder="Иванов" type="text" name="uname"></p><br />
<p>Почта:<input placeholder="example@mail.ru" type="email" name="email"></p><br />
<p>Телефон:<input placeholder="89165124412" type="text" name="tel"></p><br />
<p>Пароль:<input placeholder="qwerty123" type="password" name="pass"></p><br />
<input value="Регистрация" type="submit" name="submit">

</form>
</body>
</html>

Файл куда отправляется форма:
<meta charset="utf-8">
<?php
require_once ("../db.php");

if(isset['submit']) {
   $err = [];

   if(!isset($_POST['name']) || !isset($_POST['uname']) || !isset($_POST['email']) || !isset($_POST['tel']) || !isset($_POST['pass']) ){
    $err[] = "Введены не все данные!";
}  
   $query = mysqli_query($db, "SELECT * FROM users WHERE email='".mysqli_real_escape_string($db, $_POST['email'])."'");
    if(mysqli_num_rows($query) > 0)
    {
        $err[] = "Пользователь с таким email уже существует!";
    }
  $query = mysqli_query($db, "SELECT * FROM users WHERE tel='".mysqli_real_escape_string($db, $_POST['tel'])."'");
    if(mysqli_num_rows($query) > 0)
    {
        $err[] = "Пользователь с таким номером уже существует!";
    }

if(count($err) == 0)
    {

        $name = $_POST['name'];
        $uname = $_POST['uname'];
        $email = $_POST['email'];
        $tel = $_POST['tel'];

        // Убераем лишние пробелы и делаем двойное хеширование
        $pass = md5(md5(trim($_POST['pass'])));

        mysqli_query($db,"INSERT INTO users SET name='".$name."', uname='".$uname."', email='".$email."', tel='".$tel."', pass='".$pass."');
        header("Location: login.php"); exit();
    }
    else
    {
        print ("<b>При регистрации произошли следующие ошибки:</b><br>");
        foreach($err AS $error)
        {
            print ($error."<br>");
        }
    }

}

Буду очень благодарен за помощь)))
5f5a34d58ffc4711676357.jpeg
  • Вопрос задан
  • 273 просмотра
Подписаться 3 Простой Комментировать
Решения вопроса 1
Spartak-2205
@Spartak-2205
Разработка и создание сайтов
Ошибка номер раз:
if(isset['submit']) {
...
}


Скорее всего задумывалось так
if(isset($_POST['submit'])) {
...
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Stalker_RED
@Stalker_RED
и делаем двойное хеширование
ерунда это.
https://www.php.net/manual/ru/faq.passwords.php

$name = $_POST['name'];
...
mysqli_query($db,"INSERT INTO users SET name='".$name."', ...
про sql инъекции не слыхал еще?
Ответ написан
index0h
@index0h
PHP, Golang. https://github.com/index0h
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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