PHP:Tank Auth,需要特定的电子邮件地址才能登录
Posted
技术标签:
【中文标题】PHP:Tank Auth,需要特定的电子邮件地址才能登录【英文标题】:PHP: Tank Auth, require a certain email address to login 【发布时间】:2012-08-30 22:37:30 【问题描述】:所以我刚刚设置了 tank auth,我还没有更改任何内容,所以一切都应该是默认的。它工作得很好。但是,我想要求某个域才能使电子邮件能够登录。现在我会说gmail。那么我怎样才能使它在用户注册之前检查电子邮件地址是否包含@gmail.com。我找到了有效的电子邮件错误消息在哪里并且可以更改它,但我找不到有效电子邮件的实际检查位置。
【问题讨论】:
github.com/ilkon/Tank-Auth/blob/master/application/controllers/… Line 132 (valid_email) 【参考方案1】:Tank auth 使用 CI 的默认 valid_email
验证规则,可在 Form Validation 类中找到。
想要做这件事绝对是一件奇怪的事情,但是你可以创建一个callback validation function,并将其添加到注册页面上的表单验证规则中。
这基本上相当于ends_with
规则,但添加了“@”:
// Check if the inputs last characters matches the parameter
function is_email_domain($input, $domain)
$domain_str = '@'.$domain;
$result = strpos($input, $domain_str) === (strlen($input) - strlen($domain_str));
if ( ! $result) $this->form_validation->set_message('is_email_domain', 'The %s field must be a %s email address');
return $result;
所以在你的控制器中创建回调函数并将其添加到验证中:
$this->form_validation->set_rules(
'email',
'Email',
'trim|required|xss_clean|valid_email|callback_is_email_domain[gmail.com]'
);
【讨论】:
哈哈!这非常感谢!也是很好的学习经历。感谢您的深入回复。至于请求的奇怪之处,它是针对我学校的网站(ish),我们希望用户拥有有效的学校电子邮件才能注册,这样我们就可以确保他们是学生。当然,它不会是 gmail,而是同样的东西。再次感谢您!以上是关于PHP:Tank Auth,需要特定的电子邮件地址才能登录的主要内容,如果未能解决你的问题,请参考以下文章