PHP检查来自(POST)的变量是否包含任何数值

时间:2013-02-18 01:36:28

标签: php

我需要检查一个字段是否包含任何数值,如果是 - 它将返回脚本。

这是我的剧本

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;
}

我用它来检查字段'$ name'是否为数字,如果是,则返回它:

    if (is_numeric($name)) {
        echo 'You cannot use numbers for your name lol!';
        return;
    }

如果我只在现场输入数字,它可以正常工作。

但如果我包含数字+字符,它将继续代码并忽略返回。 为什么会这样?我做错了什么?谢谢!

2 个答案:

答案 0 :(得分:0)

你可以测试它here

尝试

preg_match('/^[a-z]+$/', $name);

而不是

preg_match('/^[a-z]$/', $name);

答案 1 :(得分:0)

你可以这样做,例如:

if (preg_match('#[0-9]#',$name)){ 
     echo 'You cannot use numbers for your name lol!';
     return;
}