Не работает if(isset($_POST['submit']))

hotbox

Новичок
Пытаюсь сделать страницу регистрации для пользователей на сайте с PHP и MySQL (я новичок). Файл register.php:

Код:
<?php

error_reporting(E_ALL);
ini_set('display_errors', 1);

if(isset($_POST['submit']))
{
    $err = array();
    # проверям user
    if(!preg_match("/^[a-zA-Z0-9]+$/",$_POST['user']))
    {
        $err[] = "имя пользователя может состоять только из букв английского алфавита и цифр";
    }
    if(strlen($_POST['user']) < 3 or strlen($_POST['user']) > 30)
    {
        $err[] = "имя пользователя не должно содержать менее 3-х символов и более 30";
    }
    # проверяем, не сущестует ли user с таким именем
    $query = mysql_query("SELECT COUNT(user_id) FROM users WHERE user_user='".mysql_real_escape_string($_POST['user'])."'");
    if(mysql_result($query, 0) > 0)
    {
        $err[] = "пользователь с таким именем уже существует";
    }
    # проверям email
    if(!preg_match("'/[^(\w)|(\@)|(\.)|(\-)]/'",$_POST['email']))
    {
        $err[] = "неправильно введен E-Mail адрес";
    }
    # Если нет ошибок, то добавляем в БД нового пользователя
    if(count($err) == 0)
    {
        $user = $_POST['user'];
        # Убираем лишние пробелы и делаем двойное шифрование
        $pass = md5(md5(trim($_POST['pass'])));
        $email = $_POST['email'];
        mysql_query("INSERT INTO users SET user_user='".$user."', user_pass='".$pass."', user_email='".$email."'");
       
        header("Location: profile.php"); exit();
    }
    else
    {
        print "При регистрации произошли следующие ошибки:<br>";
        foreach($err AS $error)
        {
            print $error."<br>";
        }
    }
}
?>
<!doctype html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>Site - Registration</title>

        <script src="js/js.js"></script>

        <link rel="stylesheet" href="css/style.css">

        <meta http-equiv="X-UA-Compatible" content="chrome=1">
        <meta name="viewport" content="width=600">
    </head>
    <body class="login">

        <header class="top">
            <div class="wrap">
                                <aside class="logo">
                    <a href="register.php">Регистрация</a>
                </aside>
                            </div>
        </header>
<section class="login content">

    <form method="post" action="register.php">

        <fieldset>
            <p><label for="user">Username:</label>
            <input id="user" autocapitalize="off" autofocus="true" placeholder="Username" type="text" name="user"></p>

            <p><label for="pass">Password:</label>
            <input id="pass" placeholder="Password" type="password" name="pass"></p>

            <p><label for="email">E-Mail:</label>
            <input id="email" autocapitalize="off" autofocus="true" placeholder="E-Mail" type="text" name="email"></p>


            <button type="submit">Registration</button></p>
        </fieldset>

    </form>

</section>
    </body>
</html>
Но, такое ощущение, что ничего не происходит и страница register.php открывается снова... Ошибки не выходят. Не знаю что делать, прошу помочь разобраться..
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Так в каком случае у тебя должна в массиве POST быть переменная submit? У тебя ее и быть не должно, судя по по коду...
 

hotbox

Новичок
Так в каком случае у тебя должна в массиве POST быть переменная submit? У тебя ее и быть не должно, судя по по коду...
Ну там же HTML код формы, где есть кнопка "Registraion", при ее нажатии массив отправляется на register.php где уже сверху его ловит PHP код.. Разве не так?
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
hotbox, Я повторяю свой вопрос, когда в массиве POST будет индекс submit? Просто добавить кнопку мало, надо блин, дать ей name
 
  • Like
Реакции: WMix

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
В остальном же:
Код:
mysql_query("INSERT INTO users SET user_user='".$user."', user_pass='".$pass."', user_email='".$email."'");
И где эскейпинг?

Код:
$pass = md5(md5(trim($_POST['pass'])));
Толку от твойного md5 нет.

Ну и вцелом предлагаю переползать на mysqli или PDO. Остальные мелочи опустим.
 
Сверху