0

フィールドに数値が含まれているかどうかを確認する必要があります。含まれている場合は、スクリプトが返されます。

これは私のスクリプトです

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

フィールドに数字だけを入れればうまくいきます。

ただし、数字と文字を含めると、コードが続行され、リターンが無視されます。なぜこうなった?私は何を間違えましたか?ありがとう!

4

2 に答える 2

0

ここでテストできます

試してみてください

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

それ以外の

preg_match('/^[a-z]$/', $name);
于 2013-02-18T01:47:25.893 に答える
0

たとえば、次のように実行できます。

if (preg_match('#[0-9]#',$name)){ 
     echo 'You cannot use numbers for your name lol!';
     return;
}
于 2013-02-18T01:47:46.037 に答える