【问题标题】:PHP | str_replace valid input with whitespacePHP | str_replace 用空格替换有效输入
【发布时间】:2020-12-30 11:39:04
【问题描述】:

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

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

我注意到如果数据库包含电子邮件: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);

【问题讨论】:

  • 如果你想删除开头和结尾的空格,然后使用 php trim() 函数。我想它会解决你的问题。

标签: php input str-replace


【解决方案1】:

试试

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

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

【讨论】:

  • 如何将此与集成:if($risultato_controllapro==0)
  • if($risult...==0){}粘贴到//do operation块内
  • if (isset($_POST['submit'])) { $email = $connessione->real_escape_string($_POST['email']); $controlla_pro = mysqli_query($connessione,"选择邀请电子邮件来自邀请 WHERE 邀请电子邮件='$email'"); $risultato_controllapro=mysqli_num_rows($controlla_pro); if(filter_var($email,FILTER_VALIDATE_EMAIL)){ if($risultato_controllapro==0) { /*CODE OK*/ }else{ /*CODE NOT OK*/ } }else{ echo "这封电子邮件无效!再试一次。 .."; } } //请格式化@user14846903
猜你喜欢
  • 2016-10-21
  • 1970-01-01
  • 2016-01-11
  • 1970-01-01
  • 2013-07-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多