0
我需要檢查一個字段是否包含任何數值,如果是 - 它將返回腳本。PHP檢查(POST)中的變量是否包含任何數值
這是我的腳本
if ($name != null && $age != null) {
if (!preg_match("/^[a-z]$/", $param)) {
echo 'You cannot use numbers for your name lol!';
return;
}
if (!is_numeric($age)) {
echo 'You must use numbers for your age!';
return;
}
mysql_select_db("jony", $connectMysql);
$sql="INSERT INTO person (name, age) VALUES ('$_POST[name]','$_POST[age]')";
if (!mysql_query($sql,$connectMysql))
die('MySQL problem:'.mysql_error());
mysql_close($connectMysql);
header('location: http://localhost/index.php.php');
} else {
echo 'Fields are empty!';
return;
}
我用它來檢查,如果字段「$名」是數字,如果是,它會返回它:
if (is_numeric($name)) {
echo 'You cannot use numbers for your name lol!';
return;
}
它正常工作,如果我只把數字放在現場。
但是,如果我包含數字+字符,它將繼續代碼並忽略返回。 這是怎麼回事?我做錯了什麼?謝謝!
因爲[ 'is_numeric()來'](http://www.php.net/manual/en/function.is-numeric.php)認爲不同事物的_lots_是數字字符串,除了整數。如果你只想要整數,使用'ctype_digit()'或者正則表達式'/^[\ d] + $ /' – 2013-02-18 01:38:13
它仍然和ctype_digit()一樣,不知道爲什麼。 – user1902133 2013-02-18 01:39:54
第一次測試中的'$ param'有什麼用?這是從哪裏來的? – 2013-02-18 01:42:32