За последние 24 часа нас посетили 62068 программистов и 1740 роботов. Сейчас ищут 860 программистов ...

Внесение сведений в бд через форму

Тема в разделе "PHP и базы данных", создана пользователем BAbl_gun, 19 мар 2021.

  1. BAbl_gun

    BAbl_gun Новичок

    С нами с:
    25 апр 2020
    Сообщения:
    32
    Симпатии:
    2
    Народ посмотрите на код и скажите как его можно улучшить?
    PHP:
    1. form action="" method="POST" >
    2.   <table>
    3.     <tr><td>Порядковый номер:</td><td> <input type="text" name="id"></input></td></tr>
    4.     <tr><td>Имя сотрудника:</td><td> <input type="text" name="name"></input></tr></td>
    5.   <tr><td><input type="submit" value="Внести данные"></td><tr>
    6.   </table>
    7.  
    8. </form>
    9. <a href="index.php">Посмотреть список лиц</a>
    10. <?php
    11.  
    12.  
    13. require_once "connectionDB.php";
    14. if(isset($_POST[name]))
    15. {
    16.    echo "Принял данные: " . $_POST[name] . "</br>";
    17. } else {
    18.    echo "Данные отсутствуют</br>";
    19. }
    20.  
    21. //Скрипт на добавление данных в бд
    22. $id = $_POST[id];
    23. $name = $_POST[name];
    24. $query = "INSERT INTO Users (id, name) VALUES (:id, :name)";
    25. $params = [
    26.   ':id' => $id,
    27.   ':name' => $name
    28. ];
    29. $stmtin = $db->prepare($query);
    30. $stmtin->execute($params);
    31.  
    32.  
    33. ?>
     
  2. Artur_hopf

    Artur_hopf Старожил

    С нами с:
    7 май 2018
    Сообщения:
    2.264
    Симпатии:
    405
    Защиту от обновления страницы, защиту от дублей, проверку того что водят в поле name. Обычно id это AUTO_INCREMENT зачем вы его вручную вводите?
     
  3. BAbl_gun

    BAbl_gun Новичок

    С нами с:
    25 апр 2020
    Сообщения:
    32
    Симпатии:
    2
    Когда создавал таблицу не подумал об этом. Можешь подробнее расписать про защиту от обновления страницы? В чем суть?
     
  4. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.861
    Симпатии:
    657
    Если запрос INSERT выполнился успешно, нужно делать «серверный» редирект методом GET. Но вам до этой логики еще далеко, судя по этому:
    PHP:
    1. } else {
    2.    echo "Данные отсутствуют</br>";
    3. }
    4. //Скрипт на добавление данных в бд
    5. $id = $_POST[id];
    6. $name = $_POST[name];
    --- Добавлено ---
    P.S. И сим. ключи ассоциативного массива нужно заключать в кавычки ;)