POSTで受信した値を数字かどうか判定する場合、is_int関数は利用してはいけません。その理由はPOSTで送られた値は全て文字列型として扱われるためです。

そのため、以下のようなコードで判定したとしても、is_int関数はfalseを返してきます。

// num=1234をPOSTでsubmitしたと仮定
$num = $_POST['num'];

// 数値判定
if (is_int($num)) {
  echo '整数';
}
else {
  echo '文字列';
}

このような場合は正規表現で判定するのがベストです。

// num=1234をPOSTでsubmitしたと仮定
$num = $_POST['num'];

if(preg_match("/^[0-9]+$/",$num)){
  echo '整数';
}
else{
  echo '文字列';
}

数値の桁数まで指定する場合は、このようになります。(例は4桁の場合)

// num=1234をPOSTでsubmitしたと仮定
$num = $_POST['num'];

if(preg_match("/^[0-9]{4}$/",$num)){
  echo '整数';
}
else{
  echo '文字列';
}