PHP | str_replace 带空格的有效输入

PHP | str_replace valid input with whitespace

我有一个表单,用户必须在其中输入电子邮件地址。

我检查数据库中是否已经存在该电子邮件地址,如果存在,则发送错误警报,否则记录。

我注意到,如果数据库包含电子邮件:a@a.com 并且我插入带有空格的 a@a.com,代码会将其解释为新的电子邮件地址,然后将其作为不存在并开始注册,这是我不想要的行为。

为了解决这个问题,我插入了代码和我的测试:

if (isset($_POST['submit']))
{
  $email = $connessione->real_escape_string($_POST['email']);
  
  $controlla_pro = mysqli_query($connessione,"SELECT invite_email FROM  invite WHERE invite_email='$email'");
  $risultato_controllapro=mysqli_num_rows($controlla_pro);


   if($risultato_controllapro==0)
   {
     /*CODE OK*/
   }else{
          /*CODE NOT OK*/
        }
}

尽量不要验证带有空格的电子邮件地址:

$email = $connessione->real_escape_string(str_replace(' ','',$_POST['email']));

但是它不起作用,我做错了什么?

再次尝试但没有成功:

首先:清理输入

之后:real_escape_string

$no_space_email = str_replace(' ','',$_POST['email']);
$email = $connessione->real_escape_string($no_space_email);

尝试

if(filter_var($email,FILTER_VALIDATE_EMAIL)){ //do operation }else{echo "invalid email";}

这将验证所有无效的电子邮件并删除空格或不允许包含空格的电子邮件。