-2
votes

Adresse e-mail de validation Laravel

J'ai créé un formulaire d'édition dans mon formulaire de demande laravel qui accepte une adresse e-mail.

J'ai utilisé la validation Laravel côté serveur.

Il valide correctement l'adresse e-mail lorsque je passe un e-mail sans @.

Mais le problème est quand je supprime . (point) de l'adresse e-mail, il l'accepte comme adresse e-mail valide.

Veuillez suggérer pourquoi cela se passe comme ça.


2 commentaires

Pouvez-vous explorer du code?


Montrez-nous comment vous validez les e-mails? Cela devrait ressembler à ceci: $data= $request->validate([ 'email' => 'required|email' ]); Vous avez tout dans la documentation laravel.com/docs/5.8/validation#rule-email


4 Réponses :


2
votes

Essayez ceci, je change ma réponse

$this->validate($request, [            
  'email' => 'required|regex:/(.+)@(.+)\.(.+)/i',
]);


1 commentaires

je change ma réponse



1
votes

Pas un problème de laravel. c'est techniquement une adresse e-mail valide.

Notez que si vous dites au navigateur de valider l'adresse e-mail, elle passera également.

Mais vous pouvez utiliser ces packages pour valider l'e-mail,

https://github.com/egulias/EmailValidator

Dans un premier temps, vérifiez-les également: https://laravel.com/docs/6.x/validation#rule-email

Ou,

utiliser la fonction checkdnsrr

<?php

$email = 'email@gmail.com';
list($username, $domain) = explode('@', $email);

if (checkdnsrr($domain, 'MX')) {
  echo "verified";
} else {
  echo "failed";
}


0 commentaires

4
votes

Vous pouvez simplement faire:

$validator = Validator::make($request->all(), [
        'Email'=>'required|email'
    ]);


0 commentaires

5
votes

Avec Laravel 7: vous pouvez utiliser

'email' => 'email:rfc,dns'


0 commentaires