<?php
# 1) Генерация капчи.
if (!isset($_SESSION['msg_id'])) { $_SESSION['msg_id']=rand(0,9999); }
# 2) Проверка заполненности полей.
if (!empty($_POST['name'])) {
# 3) Проверка капчи.
if ($_SESSION['msg_id']==($_POST['msg_id_post'])) {
# 4) Тут некий код.
# 5) Обновляем капчу.
$_SESSION['msg_id']=rand(0,9999);
}
# 6) Где-то ниже в коде:
<input type="hidden" name="msg_id_post" value="'.($_SESSION['msg_id']).'">
PD9waHAKCiMgMSkg0JPQtdC90LXRgNCw0YbQuNGPINC60LDQv9GH0LguCmlmICghaXNzZXQoJF9TRVNTSU9OWydtc2dfaWQnXSkpIHsKICAkX1NFU1NJT05bJ21zZ19pZCddPXJhbmQoMCw5OTk5KTsKfQoKIyAyKSDQn9GA0L7QstC10YDQutCwINC30LDQv9C+0LvQvdC10L3QvdC+0YHRgtC4INC/0L7Qu9C10LkuCmlmICghZW1wdHkoJF9QT1NUWyduYW1lJ10pKSB7CgojIDMpINCf0YDQvtCy0LXRgNC60LAg0LrQsNC/0YfQuC4KICBpZiAoJF9TRVNTSU9OWydtc2dfaWQnXT09KCRfUE9TVFsnbXNnX2lkX3Bvc3QnXSkpIHsKCiMgNCkg0KLRg9GCINC90LXQutC40Lkg0LrQvtC0LgoKIyA1KSDQntCx0L3QvtCy0LvRj9C10Lwg0LrQsNC/0YfRgy4KICAgICRfU0VTU0lPTlsnbXNnX2lkJ109cmFuZCgwLDk5OTkpOwoKICB9CgoKIyA2KSDQk9C00LUt0YLQviDQvdC40LbQtSDQsiDQutC+0LTQtTogCgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJtc2dfaWRfcG9zdCIgdmFsdWU9IicuKCRfU0VTU0lPTlsnbXNnX2lkJ10pLiciPg==