我已经为包含电子邮件,密码,名字和姓氏的添加用户创建了一个表单。我想验证电子邮件以查看它是否已退出或尚未退出?如何验证电子邮件以查看它是否存在于Code Igniter中?
我该怎么做?任何帮助将不胜感激。
我已经为包含电子邮件,密码,名字和姓氏的添加用户创建了一个表单。我想验证电子邮件以查看它是否已退出或尚未退出?如何验证电子邮件以查看它是否存在于Code Igniter中?
我该怎么做?任何帮助将不胜感激。
请试试这个 -
控制器 - school.php
<?php if (! defined('BASEPATH')) exit('No direct script access allowed');
class School extends CI_Controller {
public function registration()
{
$this->load->view('registration');
}
public function insert()
{
$data = $_POST;
$email = $data['email'];
$result = $this->school_model->checkEmail($email);
if(empty($result))
{
$this->school_model->insertData($data);
$msg = "Data Insert Successfully";
}
else
{
$msg = "Email Already Exists";
}
$this->session->set_flashdata('msg', $msg);
redirect('school/registration');
}
}
?>
模型 - school_model.php
<?php
class School_model extends CI_Model
{
public function checkEmail($email)
{
$this -> db -> select('*');
$this -> db -> from('users');
$this -> db -> where('email', $email);
$query = $this -> db -> get();
return $query->result_array();
}
public function insertData($data)
{
$this->db->insert('users', $data);
}
}
?>
视图 - registration.php的
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<div id="show_flash_msg"><?php echo $this->session->flashdata('msg'); ?></div>
<form method="post" action="<?php echo base_url(); ?>school/insert">
Name: <input type="text" name="name">
Email: <input type="text" name="email">
Password: <input type="text" name="password">
Mobile: <input type="text" name="mobile">
<input type="submit" value="Submit">
</form>
</body>
</html>
如果您使用的是fo笨的rm_validation你应该添加一条规则如下:
$this->form_validation->set_rules('email', 'Email', 'required|valid_email|is_unique[users.email]');
你可以创建一个回调函数,请检查是否电子邮件存在或不使用你的模型像 控制器
$this->form_validation->set_rules("email","Email","required|callback_isEmailExist");
现在在您的控制器中创建回调函数
function isEmailExist($email)
{
$verifyemail = $this->model_name->verifyemail($email)
if($verifyemail == true)
{
return false;
}
else{
return true;
}
}
型号
function verifyemail($email)
{
$this->db->select("*");
$this->db->from("table_name");
$this->db->where("email",$email);
$query = $this->db->get();
if($query->num_rows() == 1)
{
return true;
}
else{
return false;
}
}
为什么woulnd你使用它有它自己在建造函数来检查,如果事情是唯一笨的form_validation?你可以使用$ this-> form_validation-> set_rules('email','Email','required | valid_email | is_unique [users.email]'); – killstreet
是的,我们也可以使用该方法,但对于表单验证HTML5验证是最好的,因为它的检查表单没有刷新页面,并在ci表单验证刷新页面...所以这将是最好的方式 –
你不应该取决于HTML验证,此外,由于您没有Ajax,您仍然在进行刷新。你仍然会像往常一样发帖。你的方法不提供任何额外的东西。除此之外,当您只想计算结果时,没有理由执行$ this-> db-> select(“*”)。 – killstreet