Example #1
0
use SocioChat\Forms\Rules;
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 */
$email = isset($_REQUEST['email']) ? $_REQUEST['email'] : null;
$code = isset($_REQUEST['code']) ? $_REQUEST['code'] : null;
$validation = null;
if (!$email || !$code) {
    exit;
}
$form = new Form();
$form->import($_REQUEST);
$form->addRule(ActivationsDAO::EMAIL, Rules::email(), 'email в таком формате не может существовать.', 'emailPattern')->addRule(ActivationsDAO::EMAIL, function ($val) {
    $user = UserDAO::create()->getByEmail($val);
    return (bool) $user->getId();
}, 'Такой email не найден в системе.', 'userSearch');
$validation = $form->validate();
if (!$validation) {
    $heading = 'Ошибка!';
    $message = 'Email невалиден.';
    require_once "pages/common_page.php";
    exit;
}
$activation = ActivationsDAO::create();
$result = $activation->getActivation($email, $code);
$activation = $result[0];
/* @var $activation ActivationsDAO */
if (!$activation->getId() || $activation->getIsUsed()) {
Example #2
0
    require_once "pages/activation/error.php";
    exit;
}
if (strtotime($activation->getTimestamp()) + $config->activationTTL < time()) {
    $activation->setIsUsed(true);
    $activation->save();
    require_once "pages/activation/error.php";
    exit;
}
if (!$password) {
    require_once "pages/activation/prepare.php";
    exit;
}
$form = new Form();
$form->import($_REQUEST);
$form->addRule('password', Rules::password(), 'Пароль должен быть от 8 до 20 символов')->addRule('password-repeat', Rules::password(), 'Пароль должен быть от 8 до 20 символов');
$validation = $form->validate();
if (!$validation) {
    require_once "pages/activation/prepare.php";
    exit;
}
if ($password != $passwordRepeat) {
    $validation = false;
    $form->markWrong('password', 'Введенные пароли не совпадают');
    require_once "pages/activation/prepare.php";
    exit;
}
$user = UserDAO::create()->getByEmail($email);
$user->setPassword(password_hash($password, PASSWORD_BCRYPT));
$user->save();
$activation->setIsUsed(true);