public function run(User $user, $args) { if (mt_rand(0, 20) == 0) { return [PasswordUtils::get(mt_rand(20, 100)), true]; } return ['Неправильный пароль! Попробуйте снова.', true]; }
function showFirst($email, $validation = null, Form $form = null) { $token = PasswordUtils::get(20); $_SESSION['token'] = $token; require_once "pages/recovery/recovery1.php"; }
<?php use Core\Utils\PasswordUtils; use SocioChat\DAO\ActivationsDAO; use SocioChat\DI; use SocioChat\DIBuilder; use Zend\Config\Config; require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . 'config.php'; $container = DI::get()->container(); DIBuilder::setupNormal($container); $config = $container->get('config'); /* @var $config Config */ $db = new \Core\DB\DB($config); $list = $db->query("SELECT email, p.name, p.sex FROM users AS u\nJOIN sessions AS s ON s.user_id = u.id\nJOIN user_properties AS p ON u.id = p.user_id\nWHERE s.access < '2015-03-01 00:00:00'\nAND s.access > '2014-06-01 00:00:00'\nAND u.email IS NOT NULL\nAND p.is_subscribed IS TRUE\nAND u.id NOT IN (\nSELECT o.user_id FROM users_online AS o\n)"); foreach ($list as $item) { $email = $item['email']; $name = $item['name']; $ending = $item['sex'] == 1 || $item['sex'] == 3 ? 'ой' : 'ая'; $activation = ActivationsDAO::create(); $activation->fillParams([ActivationsDAO::EMAIL => $email, ActivationsDAO::CODE => substr(base64_encode(PasswordUtils::get(64)), 0, 64), ActivationsDAO::TIMESTAMP => date('Y-m-d H:i:s'), ActivationsDAO::USED => false]); $activation->save(); $msg = "<h2>Возвращайтесь в СоциоЧат!</h2>\n<p>Дорог{$ending} {$name}!</p><br>\n<p>Скучаете в пятницу вечером? Не беда! <a target=\"_blank\" href=\"" . $config->domain->protocol . $config->domain->web . "\">Заходите к нам!</a></p>\n<p>У нас много интересных собеседников.</p>\n<p></p>\n<p>Если вы забыли свой пароль, то можно восстановить <a target=\"_blank\" href=\"" . $config->domain->protocol . $config->domain->web . "/recovery.php?email={$email}\">здесь</a></p>\n<p>Если вы не желаете получать рассылку, то <a target=\"_blank\" href=\"" . $config->domain->protocol . $config->domain->web . "/unsubsribe.php?email={$email}&code=" . $activation->getCode() . "\">отпишитесь</a></p>"; $mailer = \SocioChat\DAO\MailQueueDAO::create(); $mailer->setEmail($email)->setTopic('Вы давно не были на SocioChat.Me')->setMessage($msg); $mailer->save(); }