формы — создайте проверку электронной почты, используя php codeigniter

Пожалуйста, помогите мне в создании формы, которая позволяет пользователю отправлять действительное письмо.

Когда кто-то пытается ввести идентификатор электронной почты, он должен быть проверен перед отправкой в ​​базу данных. Некоторые примеры идентификаторов нежелательной почты: [email protected], [email protected] и т.п.

Если пользователь пытается ввести идентификатор электронной почты, как упомянуто в приведенном выше примере, необходимо проверить, является ли он действительным идентификатором электронной почты или нет, а также проверить, существует ли уже пользователь с идентификатором электронной почты?

Пожалуйста, помогите мне построить код в php codeigniter.

0

Решение

В CI есть встроенная функциональность, которая обрабатывает это для вас. Он находится в библиотеке проверки формы.

Увидеть: https://ellislab.com/codeigniter/user-guide/libraries/form_validation.html

$this->form_validation->set_rules('email', 'Email', 'required|valid_email|is_unique[users.email]');

обратите внимание на правило valid_email, которое уже предоставлено для вас.

Надеюсь, поможет.

1

Другие решения

Вы также можете проверить домен электронной почты с помощью DNS.

public function check_domain($email)
{
if( ! (bool) checkdnsrr(preg_replace('/^[^@]++@/', '', $email), 'MX'))
{
return FALSE;
}

return TRUE;
}
1

Прежде всего, я хотел бы дать вам функцию проверки доменов адресов электронной почты, независимо от того, существуют они или нет, и после этого я попытаюсь выяснить процесс проверки того, был ли пользователь зарегистрирован ранее или нет, и дать ссылку на checkdnsrr ().

Я разделил свой ответ на три части

  1. Проверка домена, существует ли он или нет
  2. Проверка на стороне клиента может быть сделана через jquery или html5
  3. Уникальный адрес электронной почты для регистрации

Часть 1


Попробуйте эту функцию с несколькими разными доменными именами. Этот код работает для меня, и я надеюсь, что

function validate_email($email="[email protected]"){

$exp = "^[a-z\'0-9]+([._-][a-z\'0-9]+)*@([a-z0-9]+([._-][a-z0-9]+))+$";

if(stristr($exp,$email)){

if(checkdnsrr(array_pop(explode("@",$email)),"MX")){
echo 'good to go';
}else{
echo 'domain cant be verified';
}

}else{

echo 'sorry regular expression does not match';

}
}

Часть 2


Если вы хотите сделать это с помощью jquery, посетите JQuery дождь и выберите плагин, что вам нравится, но если вам нравится это в html5, просто

<input type="email" id="email" name="email" required>

В html5 электронная почта автоматически подтвердит, что пользователь поместил письмо, увидев @ войдите в него.

А также required тег просто увидит, что любой пользователь полностью заполнил поле электронной почты, прежде чем продолжить.


Часть 3


Вот код для того, чтобы не регистрировать те электронные письма, которые уже зарегистрированы.

 function subscriber()
{
$subscriber=$this->input->post('subscriber');
$query=$this->cartmodel->get_record('subscriber',array('email'=>$subscriber));
if($query)
{
$this->session->set_flashdata('error', '<script type="text/javascript">alert("you are already registered with us")</script>');
redirect('views');
}
else
{
$data=array('email'=>$this->input->post('subscriber'));
$this->cartmodel->insert_data('subscriber',$data);
$this->session->set_flashdata('error', '<script type="text/javascript">alert("you have sucessfully subscribed with us")</script>');
redirect('views');
}
}
0
По вопросам рекламы [email protected]