PHP: игнорирование пробелов и регистра в проверке формы - PullRequest
0 голосов
/ 21 января 2020

Я создаю образовательную платформу, на которой создаются курсы (коды курсов). Я хочу быть в состоянии предотвратить вставку нового кода курса, игнорируя используемый случай или использование пробела. например, если «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>";                                
        }

1 Ответ

0 голосов
/ 21 января 2020

Если у вас уже есть записи в вашей таблице courses, вам нужно выровнять обе строки (столбец 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));
...