<?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']).'">