Вот как можно создать простую капчу из цифры на PHP.

<?php
session_start();
$string=rand(0, 1000000);
$sum_ch=$_SESSION['rand_code'] = $string;

$dir = "fonts/"; //папка с шрифтом

$image = imagecreatetruecolor(170, 60);
$black = imagecolorallocate($image, 0, 0, 0);
$color = imagecolorallocate($image, 200, 100, 90);
$white = imagecolorallocate($image, 255, 255, 255);

imagefilledrectangle($image,0,0,399,99,$white);
imagettftext ($image, 30, 0, 10, 40, $color, $dir."verdana.ttf", $_SESSION['rand_code']);

header("Content-type: image/png");
imagepng($image);
?>

Подключаем капчу к форму таким образом

<div class="row">
  <div class="input-field col s12">
    <img src="captcha.php" alt="" />
  </div>
  <div class="input-field col s12">
    <input id="captcha" type="text" name="captcha" class="validate">
    <label for="captcha">Input captcha</label>
  </div>
</div>

Для проверки капчи на уровни php когда проверяем форму проверяем и капчу, код капчи записан в перемену в сессию $_SESSION[‘rand_code’].

<?php
session_start();
if ($_REQUEST['captcha'] != $_SESSION['rand_code']) {
    echo "Код капчи неправильный";
}
?>

Вот и все.