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