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.
4 Réponses :
Essayez ceci, je change ma réponse
$this->validate($request, [ 'email' => 'required|regex:/(.+)@(.+)\.(.+)/i', ]);
je change ma réponse
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"; }
Vous pouvez simplement faire:
$validator = Validator::make($request->all(), [ 'Email'=>'required|email' ]);
Avec Laravel 7: vous pouvez utiliser
'email' => 'email:rfc,dns'
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