如何阻止用户在输入 PHP 中只输入 space?

How to stop user from entering only space in input PHP?

我正在创建一个社交网站,在注册码的输入字段中只能输入空格。

我不希望他们在字段中输入除密码一以外的任何空格。

我尝试了很多东西,emptytrimhtmlentities !trim 还有一些我忘记了。 None 他们成功了。他们中的一些人将名字的值设置为 1.

我错过了什么?

下面是我尝试过的事情的列表(不是同时)。

$first_name = trim(strip_tags(filter_var($_POST['first_name'], FILTER_SANITIZE_STRING)));
str_replace('  ', ' ', $first_name);

if (empty($first_name)) {
    echo "Fill in first name to sign up";
}
if (!ctype_alnum($first_name)) {
    echo "Invalid first name, it only may contain letters or digits";
} 

$first_name = $_POST['first_name'] ?? '';

if (empty($first_name)) {
    echo "Fill in first name to sign up";
}
if (!ctype_alnum($first_name)) {
    echo "Invalid first name, it only may contain letters or digits";
} 

$first_name = htmlentities(trim(strip_tags(filter_var($_POST['first_name'], FILTER_SANITIZE_STRING)));

if (empty($first_name)) {
    echo "Fill in first name to sign up";
}
if (!ctype_alnum($first_name)) {
    echo "Invalid first name, it only may contain letters or digits";
} 

使用正则表达式。下面检查它至少有 5 个符号并且只包含字母和数字;

$firstName = trim($_POST['first_name']);

if (!preg_match("/^[a-zA-Z0-9]{5,}$/", $firstName)){
  echo 'Invalid';
}

有关 preg_match() can be found here 的更多信息。