PHP-də checkbox-lardan istifadə nüansları

Fərz edək ki, formada yalnız bir checkbox var:

html<form action="" method="GET">
  <input type="checkbox" name="flag">
  <input type="submit">
</form>

Fərz edək ki, formanın emal kodu belə görünür:

html<?php
  if (!empty($_GET)) { // forma göndərilibsə
    if (isset($_GET['flag'])) { // əgər qəfəs işarələnibsə
      echo 'işarələnib';
    } else {
      echo 'işarələnməyib';
    }
  }
?>

Bizi problem gözləyir - əgər qəfəs işarələnməyibsə, onda, formada checkbox-dan başqa digər elementlər olmadığı üçün, $_GET-də boş massiv olacaq. Bu o deməkdir ki, formanın emal kodunda biz formanın göndərilməsini yoxlayan ilk if-ə daxil olmayacağıq.

Problemin həlli üçün xüsusi bir üsuldan istifadə olunur: checkbox-ımızla eyni adda gizli bir input yaradırlar. Bu zaman gizli input-un dəyəri sıfır, checkbox-ın dəyəri isə bir qoyulur:

html<form action="" method="GET">
  <input type="hidden" name="flag" value="0">
  <input type="checkbox" name="flag" value="1">
  <input type="submit">
</form>

Bu halda belə olacaq. Əgər checkbox işarələnməyibsə, serverə yalnız gizli input-un dəyəri göndəriləcək. Əgər isə checkbox işarələnibsə, serverə eyni adla iki dəyər göndəriləcək. Amma, checkbox-ın dəyəri ikinci olduğu üçün, o sadəcə birincinin üzərini yazacaq.

Beləliklə, indi bizim checkbox serverə ya sıfır, ya da bir göndərəcək:

html<?php
  var_dump($_GET['flag']); // '0' və ya '1'
?>

Bunu yoxlamada istifadə edək:

html<?php
  if (!empty($_GET)) {
    if ($_GET['flag'] === '1') {
      echo 'işarələnib';
    } else {
      echo 'işarələnməyib';
    }
  }
?>
Задание 1

Qəfəs vasitəsilə istifadəçidən soruşun ki, onun artıq 18 yaşı var ya yox. Əgər varsa, ona sayta giriş icazəsi verin, yoxdursa - verməyin.