PHP: 在表单验证中忽略空格和大小写

PHP: Ignoring whitespaces and casing in form validation

我正在创建一个用于创建课程(课程代码)的教育平台。我希望能够防止插入新课程代码而忽略正在使用的大小写或使用空格。例如,如果 "PHY 101" 已经存在并且在 "phy101" 中输入一个。它应该拒绝新条目。

$new_course = $_POST['new_course'];
$sql = mysqli_query($conn, "SELECT * FROM courses WHERE course = '$new_course'") or die(mysqli_error($conn));
        $num_row=mysqli_num_rows($sql);
        if($num_row === 1){
          echo "<script>
          alert('Course code already exists.');
          window.location = 'create_newcourse.php';
          </script>";                                
        }

如果您的 courses table 上已经有记录,那么您需要预先平衡两个字符串(course 列和 $_POST['new_course']):

$new_course = strtolower(str_replace(' ', '',$_POST['new_course']));
$sql = mysqli_query($conn, "SELECT * FROM courses WHERE LOWER(REPLACE(`cource`, ' ', '')) = '$new_course'") or die(mysqli_error($conn));

如果您不需要进一步格式化 $new_course 值,您可以仅在 SQL 级别执行这两个修改,例如:

$sql = mysqli_query($conn, "SELECT * FROM courses WHERE LOWER(REPLACE(`cource`, ' ', '')) = LOWER(REPLACE('$new_course', ' ', ''))") or die(mysqli_error($conn));