destoon注册会员关于邮箱可以重复以及不填写的操作方法
首先要修改数据库中的destoon_member表中的email字段,因为之前的是:
UNIQUE KEY `email` (`email`)
因为这样所以插入数据库中的时候邮件就必须不能重复
我们需要把改下数据表的属性,用以下语句进行修改:
ALTER TABLE destoon_member DROP INDEX email;
这样就取消了索引键
然后我们要去代码中进行修改:
modele/member/member.class.php 修改如下:
找到以下代码:
function is_email($email) {
global $MOD, $L;
$email = tri($email);
if(!is_email($email)) return $this->_($L['member_email_null']);
if($MOD['banemail']) {
$domain = subst(strstr($email, '@'), 1);
$tmp = explode('|', $MOD['banemail']);
foreach($tmp as $v) {
if($domain == $v) return $this->_($L['member_email_ban']);
}
}
return true;
}
function is_email($email) {
global $MOD, $L;
$email = tri($email);
if(!is_email($email)) return $this->_($L['member_email_null']);
if($MOD['banemail']) {
$domain = subst(strstr($email, '@'), 1);
$tmp = explode('|', $MOD['banemail']);
foreach($tmp as $v) {
if($domain == $v) return $this->_($L['member_email_ban']);
}
}
return true;
}
修改为下面代码:
function is_email($email) {
global $MOD, $L;
$email = tri($email);
if(!is_email($email)) return true;
if($MOD['banemail']) {
$domain = subst(strstr($email, '@'), 1);
$tmp = explode('|', $MOD['banemail']);
foreach($tmp as $v) {
if($domain == $v) return true;
}
}
return true;
}
global $MOD, $L;
$email = tri($email);
if(!is_email($email)) return true;
if($MOD['banemail']) {
$domain = subst(strstr($email, '@'), 1);
$tmp = explode('|', $MOD['banemail']);
foreach($tmp as $v) {
if($domain == $v) return true;
}
}
return true;
}
然后找到函数function is_member($member)
注释以下代码:
if(!$this->is_email(tri($member['email']))) return false;
if($this->email_exists(tri($member['email']))) return $this->_($L['member_email_reg']);
if($this->email_exists(tri($member['email']))) return $this->_($L['member_email_reg']);
找到函数function set_member($member) {
注释以下代码:
$member['mail'] = isset($member['mail']) ? tri($member['mail']) : '';
is_email($member['mail']) or $member['mail'] = '';
is_email($member['msn']) or $member['msn'] = '';
is_email($member['mail']) or $member['mail'] = '';
is_email($member['msn']) or $member['msn'] = '';
再找到module/member/admin/template/member_add.tpl.php文件
将以下代码
将以下代码
<input type="text" size="30" name="member[email]" id="email"validator('email');"/>
修改为:
<input type="text" size="30" name="member[email]" id="email" />
然后找到<script>
将以下代码注释:
if(Dd('email').value == '') {
Dmsg('请填写电子邮箱', 'email');
return false;
}
Dmsg('请填写电子邮箱', 'email');
return false;
}
找到module/member/admin/template/member_edit.tpl.php文件
将以下代码:
将以下代码:
<input type="text" size="30" name="member[email]" id="email" value="<?php echo $email;?>"validator('email');"/>
修改为:
<input type="text" size="30" name="member[email]" id="email" value="<?php echo $email;?>" />
找到<script>注释以下代码:
if(Dd('email').value == '') {
Dmsg('请填写电子邮箱', 'email');
return false;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构