当前位置: 首页>>代码示例>>PHP>>正文


PHP Func::valid_email方法代码示例

本文整理汇总了PHP中Func::valid_email方法的典型用法代码示例。如果您正苦于以下问题:PHP Func::valid_email方法的具体用法?PHP Func::valid_email怎么用?PHP Func::valid_email使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Func的用法示例。


在下文中一共展示了Func::valid_email方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: registration

 function registration($arr)
 {
     $login = !empty($arr['login']) ? $arr['login'] : false;
     $pas = !empty($arr['pas']) ? $arr['pas'] : false;
     $email = !empty($arr['email']) ? $arr['email'] : '';
     //Валидация данных--------
     if ($email and !Func::valid_email($email)) {
         throw new Exception('Не верный адре электронной почты.');
     }
     if (mb_strlen($login, 'utf-8') < 3) {
         throw new Exception('Длина логина должна быть не менее 3х символов.');
     }
     if (mb_strlen($pas, 'utf-8') < 5) {
         throw new Exception('Длина пароля должна быть не менее 5и символов.');
     }
     if (!Func::valid_login($login)) {
         throw new Exception('Запрещённые символы в поле Login! Разрешены только буквы русского и латинского алфавита и цифры.');
     }
     //-------------------------
     $res = $this->db->prepare("SELECT id FROM users WHERE login=?;");
     $res->execute(array($login));
     if ($row = $res->fetch()) {
         throw new Exception("Пользователь с логином {$login} уже зарегистрирован. Выберите другой логин.");
     }
     if ($email) {
         $res = $this->db->prepare("SELECT id FROM users WHERE email=?;");
         $res->execute(array($email));
         if ($row = $res->fetch()) {
             throw new Exception('Пользователь с таким Email уже зарегистрирован.');
         }
     }
     //Удаляем не подтверждённые аккаунты, старше суток
     $this->db->query("DELETE FROM tmp_users WHERE time<UNIX_TIMESTAMP()-3600*24;");
     $res = $this->db->prepare("SELECT login FROM tmp_users WHERE login=?;");
     $res->execute(array($login));
     if ($row = $res->fetch()) {
         throw new Exception("Пользователь с логином {$login} ожидает подтверждение регистрации. Выберите другой логин.");
     }
     if ($email) {
         $res = $this->db->prepare("SELECT login FROM tmp_users WHERE email=?;");
         $res->execute(array($email));
         if ($row = $res->fetch()) {
             throw new Exception('Пользователь с таким Email ожидает подтверждение регистрации.');
         }
     }
     //Шифруем пароль
     $md5pas = md5('cms' . md5($pas));
     //Если требуется подтверждение $email--
     if ($this->conf['reg']['email_must']) {
         if (!$email) {
             throw new Exception('Необходим Email');
         } else {
             $code = Func::rand_string(10);
             $res = $this->db->prepare("INSERT INTO tmp_users (login,pas,email,code,time) VALUES (?,?,?,?,UNIX_TIMESTAMP());");
             if (!$res->execute(array($login, $md5pas, $email, $code))) {
                 throw new Exception($this->db->errorInfo());
             }
             //Высылаем код для подтверждения email
             $from_name = 'Администрация ' . $_SERVER['HTTP_HOST'];
             $from_email = 'admin@' . $_SERVER['HTTP_HOST'];
             $mail_subject = 'Подтверждение регистрации';
             $mail_text = 'Для подтверждения регистрации на сайте ' . H . ' перейдите по следующей ссылке:' . "\n" . H . '/login/email_confirm/' . $code;
             Func::send_mail($from_name, $from_email, $login, $email, $mail_subject, $mail_text);
             return array('pas' => $md5pas, 'email' => $email, 'login' => $login);
         }
     }
     //-------------------------------------
     $res = $this->db->prepare("INSERT INTO users (login, pas, email,reg_time) VALUES (?,?,?,UNIX_TIMESTAMP());");
     if (!$res->execute(array($login, $md5pas, $email))) {
         throw new Exception($this->db->errorInfo());
     }
     $id = $this->db->lastInsertId();
     return array('id' => $id, 'pas' => $md5pas, 'email' => $email, 'login' => $login);
 }
开发者ID:kostarev,项目名称:test,代码行数:74,代码来源:SiteWrite.php

示例2: forget

 function forget()
 {
     $captcha = new Captcha();
     $this->des->set('captcha', $captcha);
     $this->des->set('title', 'Восстановление пароля');
     $this->des->set('forget', true);
     //Обработка формы---
     if (!empty($_POST['emlogin'])) {
         if (!$captcha->is_access($_POST['captcha'])) {
             $this->error('Не верно введены символы с картинки');
         }
         $res = $this->db->prepare("SELECT email,login FROM users WHERE login=? OR email=?;");
         $res->execute(array($_POST['emlogin'], $_POST['emlogin']));
         if (!($row = $res->fetch())) {
             if (Func::valid_email($_POST['emlogin'])) {
                 $this->error('Пользователь с таким Email не зарегистрирован', false);
             } else {
                 $this->error('Пользователь с таким логином не зарегистрирован', false);
             }
         } elseif (!$row['email']) {
             $this->error('У пользователя ' . $row['login'] . ' не заполнен Email. Смена пароля не возможна.', false);
         } else {
             $res = $this->db->prepare("SELECT login FROM tmp_users WHERE login=?;");
             $res->execute(array($row['login']));
             if ($arr = $res->fetch()) {
                 $this->error('Инструкция для смены пароля уже выслана вам на Email. Повторить попытку вы сможете через 24 часа.');
             }
             $code = Func::rand_string(20);
             $this->db->query("DELETE FROM tmp_users WHERE time<UNIX_TIMESTAMP()-3600*24;");
             $res = $this->db->prepare("INSERT INTO tmp_users (login,code,time) VALUES (?,?,UNIX_TIMESTAMP());");
             $res->execute(array($row['login'], $code));
             //Высылаем инструкцию по смене пароля
             $from_name = 'Администрация ' . $_SERVER['HTTP_HOST'];
             $from_email = 'admin@' . $_SERVER['HTTP_HOST'];
             $mail_subject = 'Смена пароля';
             $mail_text = $row['login'] . ', для смены пароля на сайте ' . H . ' перейдите по следующей ссылке:' . "\n" . H . '/login/change_pass/' . $code;
             Func::send_mail($from_name, $from_email, $row['login'], $row['email'], $mail_subject, $mail_text);
             $this->des->set('forget_email', true);
         }
     }
     //------------------
     $this->des->display('login');
 }
开发者ID:kostarev,项目名称:test,代码行数:43,代码来源:login.php


注:本文中的Func::valid_email方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。