Лекция · 5.8

Формалар (деректерді енгізу формалары)

Сайтқа тіркелгенде атыңды, паролыңды жазатын өріс — форма. Форма ЖОҚ болса, деректер қорына ешкім өз бетінше ДЕРЕК ҚОСА алмас еді — тек әкімші ғана SQL-код жазып отырар еді! Бүгін форма арқылы деректер қорына жаңа жазба қосуды үйренеміз.

FORM және INPUT
Анықтама
Форма — деректер қорындағы ақпаратты енгізуді, өңдеуді және көрсетуді жеңілдететін құрал; батырма, мәтіндік өріс, тізім сияқты функционалды элементтер жиынтығы.
🚪
Аналогия (Арман-ПВ): форма — ақпаратты кестеге тасымалдаудағы «қолданушы каналы»: қолданушы кесте немесе деректер сызбасы сияқты күрделі құрылымдармен ТІКЕЛЕЙ жұмыс істемей, үйреншікті интерфейс арқылы қажетті деректерге қол жеткізеді.

HTML формасының барлық коды <form>...</form> ішінде орналасады. <input> — форманың ЕҢ МАҢЫЗДЫ элементі, type атрибутына қарай әртүрлі түрде көрінеді:

ТипҚызметі
textБір жолды мәтін енгізу өрісі
radioҚосқыш (бірнеше опциядан біреуін таңдау)
submitФорманы жіберу батырмасы

<select> — ашылмалы тізім, <option> — оның элементтері:

<select name="country">
    <option value="Qazaqstan">Qazaqstan</option>
    <option value="Resei">Resei</option>
</select>
Форма арқылы деректер қорына жазу
Есеп (қиын): жаңа аспап атауын қосатын форма

Берілді: name_instr кестесіне жаңа аспап атауын қосатын форма керек.

<?php
$name_ins = $_POST["name_ins"];
if ($name_ins) {
    $conn = mysqli_connect("localhost", "root", "");
    mysqli_select_db($conn, "kaz_mus_instruments");
    $sSQL = "INSERT INTO name_instr VALUES (NULL, '$name_ins')";
    mysqli_query($conn, $sSQL);
} else {
    echo "Bos mander engizuge bolmaidy";
}
?>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
    Aspaptyn aty: <input type="text" name="name_ins">
    <input type="submit" value="Save">
</form>

Түсіндірме: форма жіберілгенде $_POST["name_ins"] арқылы енгізілген мән алынады, тексеруден өтіп, INSERT INTO командасымен кестеге ЖАЗЫЛАДЫ.

⚠️
Синтаксис ережесі: mysqli_* функцияларында БІРІНШІ аргумент әрдайым $conn байланысы болуы керек — mysqli_select_db($conn, "dbname"), ЕМЕС керісінше ретпен.
method/action және деректі тексеру

Форманың екі негізгі параметрі бар:

ПараметрҚызметі
methodДеректерді жіберу әдісі: post немесе get
actionДеректер жіберілетін скрипт файлының жолы

Егер action көрсетілмесе, деректер сол баптың ӨЗІНЕ ($_SERVER['PHP_SELF'] арқылы) жіберіледі.

🛡️
Міндетті тексеру: форма арқылы енгізілген мәнді дерекқорға жазбас бұрын, оның бос ЕМЕС екенін тексеру керек:
if ($name_ins) {
    // mandi derekqorga zhazu
} else {
    echo "Bos mandi engizuge bolmaidy";
}

Бұл — деректер қорына бос немесе жарамсыз мән түсіп кетуден сақтайтын ЕҢ ҚАРАПАЙЫМ, бірақ МІНДЕТТІ тексеру.

🎯 ҰБТ байланысы
Форма атрибуттары мен деректі дерекқорға жазу дәйектілігі жиі тексеріледі.
1
method="post" — деректі жіберу тәсілі, action — қай скриптке жіберетінін көрсетеді.
2
$_POST["атау"] — форма арқылы жіберілген мәнді алу тәсілі.
3
Дерекқорға жазбас бұрын мәннің бос емес екенін тексеру міндетті.
Сабақ қорытындысы
  • Форма — деректер қорына ақпарат енгізуді жеңілдететін интерфейс.
  • <input type="text">, radio, submit — форманың негізгі элементтері.
  • $_POST["атау"] арқылы форма деректерін алып, INSERT INTO командасымен кестеге жазады.
  • Дерекке жазбас бұрын оның бос емес екенін тексеру — қауіпсіздіктің қарапайым қадамы.