GhosT-ReCoN, тот код я с Джона брал. Можно его ещё вот так переделать:
if (preg_match('/[^0-9]+/', $_POST['log'])) {
echo 'Запрещённые символы!';
}
$_POST['log'] фильтровать так то надо... В самом начале, а не потом.
Знак отрицания уже стоит в регулярке - ^ - по этому знак восклицания - ! - впереди не нужен.