仍在继续我发布的项目。注册验证邮件时遇到一些麻烦。当前正常运行:将验证电子邮件注册到电子邮件目的地。但是我看到在数据库中有两个具有相同数据(提交)的插入。我的剧本有什么问题吗?
这是我的控制器
function submit() {
$_POST['dob'] = $_POST['year'].'-'.$_POST['month'].'-'.$_POST['day'];
$firstname = $this->input->post('firstname');
$lastname = $this->input->post('lastname');
$password = $this->input->post('password');
$email = $this->input->post('email');
$dob = $this->input->post('dob');
$jkl = $this->input->post('jkl');
$lastlogin = $this->input->post('lastlogin');
$data = array(
'firstname' => $firstname,
'lastname' => $lastname,
'password' => $password,
'email' => $email,
'dob' => $dob,
'jkl' => $jkl,
'lastlogin' => $lastlogin,
'active' => 0
);
$this->m_register->add_account($data);
$id = $this->m_register->add_account($data);
$encrypted_id = md5($id);
$this->load->library('email');
$config = Array(
'protocol' => 'smtp',
'smtp_host' => 'ssl://smtp.gmail.com',
'smtp_port' => 465,
'smtp_user' => '*******@*****.com ',
'smtp_pass' => '**********',
'mailtype' => 'html',
'charset' => 'utf-8',
'wordwrap' => TRUE
);
$this->load->library('email', $config);
$this->email->set_newline("\r\n");
$email_setting = array('mailtype'=>'html');
$this->email->initialize($email_setting);
$this->email->from('*****@******.COM', 'RRR');
$this->email->to($email);
$this->email->subject('Confirmation Email');
$this->email->message("WELCOME TO RRRR <br><p></p>Hallo $firstname $lastname <br><br><br><p>Terimakasih telah melakuan registrasi dengan:<br><br><p>
Username = $email<p>
Password = $password
<br><br>
<p>
untuk memverifikasi akun silahkan klik tautan dibawah ini</p><br><br>"
.site_url("login/register/verification/$encrypted_id")."
<br><br><br>
<p></p><br>
<p>Thanks</p>Admin ");
if($this->email->send())
{
$data = array ( 'isi' => 'login/vsuccess');
$this->load->view('layout/wrapper',$data);
}else
{
$data = array ( 'isi' => 'login/vgagal');
$this->load->view('layout/wrapper',$data);
}
}
这是我的模特
function add_account($data){
$this->load->database();
$this->db->insert('user',$data);
return mysql_insert_id();
}
答案 0 :(得分:2)
我不完全理解这个问题,但您是否注意到您似乎将数据插入数据库两次?
$this->m_register->add_account($data);
$id = $this->m_register->add_account($data);
答案 1 :(得分:2)
$this->m_register->add_account($data);
$id = $this->m_register->add_account($data);
检查代码中的这两行,删除:
$这 - &GT; m_register-&GT; add_account($数据);
它会起作用。
答案 2 :(得分:1)
因为您要两次调用ad_account()。
$this->m_register->add_account($data);
$id = $this->m_register->add_account($data);
答案 3 :(得分:1)
$this->m_register->add_account($data);
$id = $this->m_register->add_account($data);
显然,您将$ data数据插入数据库2次:)
答案 4 :(得分:1)
$this->m_register->add_account($data);
调用add_account()
模型中的m_register
函数。使用$id = $this->m_register->add_account($data);
,您可以第二次调用它,但您也可以捕获返回的数据。这应该是您在数据库中看到两个插入的原因。
删除第一个电话,只留下$id = $this->m_register->add_account($data);
,可以解决问题。
我建议在您的控制器中添加表单验证,您可以在其中使用电子邮件的回调函数,以检查您的用户表中是否已存在该电子邮件。这样,用户无法使用相同的电子邮件注册两次。