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