我在我的Laravel申请表中创建了一个编辑表单,它接受电子邮件地址。我在服务器端使用了Laravel验证。当我传递一个明显无效的值,如'xxxxxx'时,它正在正确地验证电子邮件地址。但问题是,当我发送一个只有顶级域而没有像'xxxxxx@ yyyyyy'这样的点的电子邮件地址时,它会接受它作为有效的电子邮件地址。如何验证电子邮件地址以确保其使用正确的域?
gjmwrych1#
Laravel 7:你可以用
'email' => 'email:rfc,dns'
2skhul332#
试试这个:
$this->validate($request, [ 'email' => 'required|regex:/(.+)@(.+)\.(.+)/i', ]);
hvvq6cgz3#
您可以简单地执行以下操作:
$validator = Validator::make($request->all(), [ 'Email'=>'required|email' ]);
fzwojiic4#
这不是Laravel的问题。从技术上讲,这是一个有效的电子邮件地址。请注意,如果您告诉浏览器验证电子邮件地址,它也会通过。但是您可以使用包 EmailValidator 来验证电子邮件地址。首先,还要检查这些:https://laravel.com/docs/6.x/validation#rule-email
或者
使用 checkdnsrr 函数。
<?php $email = 'email@gmail.com'; list($username, $domain) = explode('@', $email); if (checkdnsrr($domain, 'MX')) { echo "verified"; } else { echo "failed"; }
qvtsj1bj5#
Laravel电子邮件验证和唯一的电子邮件插入数据库用于代码:'email_address' => 'required|email|unique:customers,email_address'
'email_address' => 'required|email|unique:customers,email_address'
5条答案
按热度按时间gjmwrych1#
Laravel 7:你可以用
2skhul332#
试试这个:
hvvq6cgz3#
您可以简单地执行以下操作:
fzwojiic4#
这不是Laravel的问题。从技术上讲,这是一个有效的电子邮件地址。
请注意,如果您告诉浏览器验证电子邮件地址,它也会通过。
但是您可以使用包 EmailValidator 来验证电子邮件地址。
首先,还要检查这些:https://laravel.com/docs/6.x/validation#rule-email
或者
使用 checkdnsrr 函数。
qvtsj1bj5#
Laravel电子邮件验证和唯一的电子邮件插入数据库用于代码:
'email_address' => 'required|email|unique:customers,email_address'