За последние 24 часа нас посетили 21644 программиста и 1024 робота. Сейчас ищут 750 программистов ...

Создание двух строк со значением null

Тема в разделе "PHP и базы данных", создана пользователем Daryaa049, 31 окт 2020.

  1. Daryaa049

    Daryaa049 Новичок

    С нами с:
    5 окт 2020
    Сообщения:
    28
    Симпатии:
    0
    Добрый день. Вопрос, в авторизации есть две строчки - discount, id_type, мне необходимо чтобы эти строчки заполнялись по желанию или через связь другой таблицы(т.е автоматически при вводе с другой таблицы), а все остальные строчки через форум обязательные. Я не знаю как в коде указать в конце signup.php. Ставлю null два раза, ничего. А при регистрации вроде говорит что успешно зарегистрировались, но ничего нет.
    signup.php
    PHP:
    1. <?php
    2. require 'db.php';
    3.  
    4. if(isset($_SESSION['id']))
    5. {
    6.     header('location: /');
    7.     exit();
    8. }
    9.  
    10. # проверяем какой метод используется на веб странице, если не POST завершаем обработку
    11. if ($_SERVER['REQUEST_METHOD'] == 'POST')
    12. {
    13.     # подготавливаем данные из формы фильтруем их  
    14.    $rulles = [
    15.         'lastname'   => FILTER_DEFAULT,
    16.         'firstname'  => FILTER_DEFAULT,
    17.         'phone'      => FILTER_DEFAULT,
    18.         'email'      => FILTER_VALIDATE_EMAIL,
    19.         'password_1' => FILTER_DEFAULT,
    20.         'password_2' => FILTER_DEFAULT
    21.     ];
    22.     # фильтруем данные при необходимости
    23.    $filter = filter_input_array(INPUT_POST, $rulles);
    24.  
    25.     # создадим пустой массив, для хранения ошибок
    26.    $errors = [];
    27.  
    28. // ******************************************************************************//
    29.     # проверяем не пуста ли переменная имени
    30.    if(empty($filter['lastname'])) {
    31.         $errors[] = 'Введите имя!';
    32.     }
    33.     # проверяем не пуста ли переменная фамилии
    34.    if(empty($filter['firstname'])) {
    35.       $errors[] = 'Введите фамилию!';
    36.     }
    37.    
    38.    # проверяем не пуста ли переменная телефон
    39.   if(empty($filter['phone'])) {
    40.     $errors[] = 'Введите телефон!';
    41.     }
    42.  
    43.     # проверяем не пуста ли переменная email и заполнина она валидно
    44.    if(empty($filter['email']) && !$filter['email']) {
    45.         $errors[] = 'Email не валидный, пример email: example@ya.ru!';
    46.      
    47.       }
    48.     # проверяем не пуста ли переменная пароль
    49.    if(empty($filter['password_1']))
    50.     {
    51.       $errors[] = 'Введите пароль!';
    52.     }
    53.     //******************************************************************************//
    54.    
    55.     # проверка существования email в базе
    56.    $sql = $pdo->prepare('SELECT `email` FROM `users` WHERE `email` = :email');
    57.     $sql -> execute(['email' => $filter['email']]);
    58.     $result = $sql -> fetch();
    59.  
    60.     if (!$result['email'] == false) {
    61.         $errors[] = 'email существует выбери другой!';
    62.     }
    63.  
    64.    
    65.  
    66.     # проверка существования телефон в базе
    67.    $sql = $pdo->prepare('SELECT `phone` FROM `users` WHERE `phone` = :phone');
    68.     $sql -> execute(['phone' => $filter['phone']]);
    69.     $result = $sql -> fetch();
    70.  
    71.     if (!$result['phone'] == false) {
    72.         $errors[] = 'Телефон существует выбери другой!';
    73.     }
    74.  
    75.    
    76.     # проверяем совпадение паролей, если пароль1 не равен паролю2
    77.    if($filter['password_1'] != $filter['password_2'])
    78.     {
    79.         $errors[] = 'Пароли не совпадают!';
    80.     }
    81.  
    82.     # если количество ошибок больше нуля показываем их
    83.    if(count($errors) > 0){
    84.         echo '<div id="errors" style="color:red;">' .array_shift($errors). '</div><hr>';
    85.     }else{
    86.  
    87.     //*************************************регистрация******************************************//
    88.         # перед регистрацией захешируем пароль который вставим в базу
    89.        $pass = password_hash($filter['password_1'], PASSWORD_DEFAULT);
    90.  
    91.         $stmt = $pdo->prepare("INSERT INTO `users`(`last_name`, `first_name`, `phone`, `email`, `password`) VALUES (?, ?, ?, ?, ?)");
    92.         $stmt->execute([$filter['lastname'], $filter['firstname'], $filter['phone'], $filter['email'], $pass ]);
    93.  
    94.         echo '<div style="color:green;">Вы успешно зарегистрированы!</div><hr>';
    95.         echo '<a href="/login.php">Перейти на главную</a>';
    96.     }
    97.     // echo '<pre>';
    98.     // var_dump($errors);
    99.     // echo '</pre>';
    100. }
    101.  
    102. ?>
    103. <!DOCTYPE HTML>
    104. <head>
    105. <meta charset="utf-8" />
    106.     <link rel="stylesheet" href="style1.css">
    107. </head>
    108. <body>
    109. <form action="/signup.php"  method="POST">
    110.     <br><br><br><br>
    111.     <strong id = "im">Ваше имя</strong>
    112.     <input type="text" id = "ima" placeholder = "lastname" name="lastname" value="<?=$filter['lastname']; ?>"><br>
    113.     <p>
    114.     <strong id = "fa">Ваша фамилия</strong>
    115.     <input type="text" id = "fam"  placeholder = "firstname" name="firstname" value="<?=$filter['firstname']; ?>"><br>
    116.     <p>
    117.     <strong id = "ema">Ваш Email</strong>
    118.     <input type="email"  id = "em" name="email" placeholder = "email" value="<?=$filter['email']; ?>"><br>
    119.     <p>
    120.     <strong id = "ph">Ваш номер телефона</strong>
    121.     <input type="phone" id = "tel" name="phone" placeholder = "number"  value="<?=$filter['phone']; ?>"><br>
    122.     <p>
    123.     <strong id = "pa">Ваш пароль</strong>
    124.     <input type="password"  id = "par" placeholder = "password" name="password_1" value="<?=$filter['password_1']; ?>"><br>
    125.     <p>
    126.     <strong id = "pa1">Повторите пароль*</strong>
    127.     <input type="password" id = "par1" placeholder = "repeat password" name="password_2" value="<?=$filter['password_2']; ?>"><br>
    128.     <strong><!--?php captcha_show(); ?--></strong>
    129.     <p>
    130.     <button type="submit" name="do_signup">Отправить</button>
    131. </form>
    132. </body>
    133. </html>
    Есть также подключения
    db.php
    PHP:
    1. <?php
    2.  
    3. $pdo = new PDO('mysql:dbname=registra1;host=localhost', 'root', '');
    и connection.php
    PHP:
    1. <?php
    2. $host = 'localhost'; // адрес сервера
    3. $database = 'registra1'; // имя базы данных
    4. $user = 'root'; // имя пользователя
    5. $password = ''; // пароль
    6. ?>
    скрин
    upload_2020-10-31_21-38-42.png
     
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.752
    Симпатии:
    1.322
    Адрес:
    Лень
    create table .. column name default null