Пример #1
0
 /**
  * Vérifie un email
  * @return object 2 attributs, bool success et array string msg
  */
 private function check()
 {
     $std = (object) array('success' => false, 'msg' => array());
     if (!$_SESSION['user']) {
         if (($res = Membre::checkPseudo($this->pseudo)) !== true) {
             $std->msg[] = $res;
         }
         if (($res = Membre::checkEmail($this->email)) !== true) {
             $std->msg[] = $res;
         }
         $captcha = new Captcha();
         if (($res = $captcha->check($this->captcha)) !== true) {
             $std->msg[] = $res;
         }
     }
     if (($res = $this->checkSujet($this->sujet)) !== true) {
         $std->msg[] = $res;
     }
     if (($res = $this->checkMessage($this->message)) !== true) {
         $std->msg[] = $res;
     }
     if (empty($std->msg)) {
         $std->success = true;
     }
     return $std;
 }
Пример #2
0
    $errormsg = 'Sorry, registration on this instance of ThinkTank is closed. <br /><br /><a href="http://github.com/ginatrapani/thinktank/tree/master">Install ThinkTank on your own server</a> or go back to <a href="' . $THINKTANK_CFG['site_root_path'] . 'public.php">the public timeline</a>.';
} else {
    $db = new Database($THINKTANK_CFG);
    $conn = $db->getConnection();
    $od = new OwnerDAO($db);
    $s->assign('closed', false);
    $captcha = new Captcha($THINKTANK_CFG);
    if ($_POST['Submit'] == 'Register') {
        if (strlen($_POST['email']) < 5) {
            $errormsg = "Incorrect email. Please enter valid email address.";
        }
        if (strcmp($_POST['pass1'], $_POST['pass2']) || empty($_POST['pass1'])) {
            if (!isset($errormsg)) {
                $errormsg = "Password does not match or empty.";
            }
        } elseif (!$captcha->check()) {
            //Captcha not valid, captcha handles message...
        } else {
            if ($od->doesOwnerExist($_POST['email'])) {
                $errormsg = "User account already exists.";
            } else {
                $es = new SmartyThinkTank();
                $es->caching = false;
                $activ_code = rand(1000, 9999);
                $cryptpass = $session->pwdcrypt($_POST['pass2']);
                $server = $_SERVER['HTTP_HOST'];
                $od->create($_POST['email'], $cryptpass, $_POST['country'], $activ_code, $_POST['full_name']);
                $es->assign('apptitle', $THINKTANK_CFG['app_title']);
                $es->assign('server', $server);
                $es->assign('site_root_path', $THINKTANK_CFG['site_root_path']);
                $es->assign('email', urlencode($_POST[email]));
Пример #3
0
 public function control()
 {
     if ($this->isLoggedIn()) {
         $controller = new DashboardController(true);
         return $controller->go();
     } else {
         $this->disableCaching();
         $config = Config::getInstance();
         if (!$config->getValue('is_registration_open')) {
             $this->addToView('closed', true);
             $this->addErrorMessage('<p>Sorry, registration is closed on this ThinkUp installation.</p>' . '<p><a href="http://github.com/ginatrapani/thinkup/tree/master">Install ThinkUp on your own ' . 'server.</a></p>');
         } else {
             $owner_dao = DAOFactory::getDAO('OwnerDAO');
             $this->addToView('closed', false);
             $captcha = new Captcha();
             if (isset($_POST['Submit']) && $_POST['Submit'] == 'Register') {
                 foreach ($this->REQUIRED_PARAMS as $param) {
                     if (!isset($_POST[$param]) || $_POST[$param] == '') {
                         $this->addErrorMessage('Please fill out all required fields.');
                         $this->is_missing_param = true;
                     }
                 }
                 if (!$this->is_missing_param) {
                     if (!Utils::validateEmail($_POST['email'])) {
                         $this->addErrorMessage("Incorrect email. Please enter valid email address.");
                     } elseif (strcmp($_POST['pass1'], $_POST['pass2']) || empty($_POST['pass1'])) {
                         $this->addErrorMessage("Passwords do not match.");
                     } elseif (!$captcha->check()) {
                         // Captcha not valid, captcha handles message...
                     } else {
                         if ($owner_dao->doesOwnerExist($_POST['email'])) {
                             $this->addErrorMessage("User account already exists.");
                         } else {
                             $es = new SmartyThinkUp();
                             $es->caching = false;
                             $session = new Session();
                             $activ_code = rand(1000, 9999);
                             $cryptpass = $session->pwdcrypt($_POST['pass2']);
                             $server = $_SERVER['HTTP_HOST'];
                             $owner_dao->create($_POST['email'], $cryptpass, $activ_code, $_POST['full_name']);
                             $es->assign('server', $server);
                             $es->assign('email', urlencode($_POST['email']));
                             $es->assign('activ_code', $activ_code);
                             $message = $es->fetch('_email.registration.tpl');
                             Mailer::mail($_POST['email'], "Activate Your " . $config->getValue('app_title') . " Account", $message);
                             unset($_SESSION['ckey']);
                             $this->addSuccessMessage("Success! Check your email for an activation link.");
                         }
                     }
                 }
                 if (isset($_POST["full_name"])) {
                     $this->addToView('name', $_POST["full_name"]);
                 }
                 if (isset($_POST["email"])) {
                     $this->addToView('mail', $_POST["email"]);
                 }
             }
             $challenge = $captcha->generate();
             $this->addToView('captcha', $challenge);
         }
         return $this->generateView();
     }
 }
Пример #4
0
<?php

Validator::extend(Config::get('latrell-captcha.validator_name'), function ($attribute, $value, $parameters) {
    return Captcha::check($value);
});
Пример #5
0
 /**
  * Vérifie que l'email d'oubli de mot de passe peut etre envoyé
  * @param array $param Les attributs de la demande d'envoi d'email
  * @return object True si l'email peut etre envoyé, un message sinon
  * @static
  */
 public static function checkSendMailLostPass(&$param)
 {
     $std = (object) array('success' => false, 'msg' => array());
     $captcha = new Captcha();
     if (($res = $captcha->check($param['g-recaptcha-response'])) === true) {
         $membreDAO = new MembreDAO(BDD::getInstancePDO());
         if (empty($param['pseudoEmail'])) {
             $std->msg[] = 'Le pseudo ou l\'email n\'est pas renseigné';
             return $std;
         }
         if (($res = $membreDAO->checkMembreExiste($param['pseudoEmail'])) === false) {
             $std->msg[] = 'Le pseudo ou l\'email n\'existe pas';
         } else {
             return $res;
         }
     } else {
         $std->msg[] = $res;
     }
     return $std;
 }
Пример #6
0
 public function actionRegister()
 {
     $message_name = "register";
     if ($this->request->register) {
         /*-регистрация пользователя обработка-*/
         $user_old_1 = new UserDB();
         $user_old_1->loadOnEmail($this->request->email);
         //проверка уникальности emaul
         $user_old_2 = new UserDB();
         $user_old_2->loadOnLogin($this->request->login);
         //проверка уникальности login
         $captcha = $this->request->captcha;
         //вывд картинки с кодом
         $checks = array(array(Captcha::check($captcha), true, "ERROR_CAPTCHA_CONTENT"));
         //каптча не верная
         $checks[] = array($this->request->password, $this->request->password_conf, "ERROR_PASSWORD_CONF");
         //пароль не совпадает
         $checks[] = array($user_old_1->isSaved(), false, "ERROR_EMAIL_ALREADY_EXISTS");
         //ошибка email уже зарегистрирован
         $checks[] = array($user_old_2->isSaved(), false, "ERROR_LOGIN_ALREADY_EXISTS");
         //ошибка login уже зарегистрирован
         $user = new UserDB();
         //формируем объект пользователя
         $fields = array("name", "login", "email", array("setPassword()", $this->request->password));
         //создаем массив объекта
         $user = $this->fp->process($message_name, $user, $fields, $checks);
         if ($user instanceof UserDB) {
             //если пользователь не нуль обрабатываем
             $this->mail->send($user->email, array("user" => $user, "link" => URL::get("activate", "", array("login" => $user->login, "key" => $user->activation), false, Config::ADDRESS)), "register");
             //создаем ссылку для активации пользователя из почты
             $this->redirect(URL::get("sregister"));
         }
     }
     $this->title = "Регистрация на сайте " . Config::SITENAME;
     $this->meta_desc = "Регистрация на сайте " . Config::SITENAME . ".";
     $this->meta_key = "регистрация сайт " . mb_strtolower(Config::SITENAME) . ", зарегистрироваться сайт " . mb_strtolower(Config::SITENAME);
     $hornav = $this->getHornav();
     //горизонтальная навигация
     $hornav->addData("Регистрация");
     $form = new Form();
     //форма для регистрации
     $form->hornav = $hornav;
     $form->header = "Регистрация";
     $form->name = "register";
     $form->action = URL::current();
     //переход на эту же страницу
     $form->message = $this->fp->getSessionMessage($message_name);
     $form->text("name", "Имя и/или фамилия:", $this->request->name);
     //сами поля
     $form->text("login", "Логин:", $this->request->login);
     $form->text("email", "E-mail:", $this->request->email);
     $form->password("password", "Пароль:");
     $form->password("password_conf", "Подтвердите пароль:");
     $form->captcha("captcha", "Введите код с картинки:");
     $form->submit("Регистрация");
     $form->addJSV("name", $this->jsv->name());
     // проверка полей
     $form->addJSV("login", $this->jsv->login());
     $form->addJSV("email", $this->jsv->email());
     $form->addJSV("password", $this->jsv->password("password_conf"));
     $form->addJSV("captcha", $this->jsv->captcha());
     $this->render($form);
     //вывод формы
 }
Пример #7
0
                $_SESSION[$name] = $value;
            } else {
                unset($_SESSION[$name]);
            }
        } else {
            return isset($_SESSION[$name]) ? $_SESSION[$name] : '';
        }
    }
}
session_start();
$obj = new Captcha($sname);
# 創建Captcha類對象
# $sname為保存captcha的session name,可留空,留空則為'm_captcha'
$param = array('width' => 13, 'height' => 18, 'pnum' => 100, 'lnum' => 2);
$obj->create($length, $param);
# 創建Captcha并輸出圖片
# $length為Captcha長度,可留空,默認為4
/* $param = array(
        'width' => 13		captcha 字符寬度
        'height' => 18		captcha 字符高度
        'pnum' => 100		干擾點個數
        'lnum' => 2			干擾線條數
        )
        可留空
*/
$obj->check($captcha, $flag);
# 檢查用戶輸入的驗證碼是否正確,true or false
# $captcha為用戶輸入的驗證碼,必填
# $flag 可留空,默認為1
#		1:當驗證成功后自動清除captcha session
#		0:當驗證成功后不清除captcha session,用於ajax檢查
 public function actionRegister()
 {
     $message_name = "register";
     if ($this->request->register) {
         $user_old_1 = new UserDB();
         $user_old_1->loadOnEmail($this->request->email);
         $user_old_2 = new UserDB();
         $user_old_2->loadOnLogin($this->request->login);
         $captcha = $this->request->captcha;
         $checks = array(array(Captcha::check($captcha), true, "ERROR_CAPTCHA_CONTENT"));
         $checks[] = array($this->request->password, $this->request->password_conf, "ERROR_PASSWORD_CONF");
         $checks[] = array($user_old_1->isSaved(), false, "ERROR_EMAIL_ALREADY_EXISTS");
         $checks[] = array($user_old_2->isSaved(), false, "ERROR_LOGIN_ALREADY_EXISTS");
         $user = new UserDB();
         $fields = array("name", "login", "email", array("setPassword()", $this->request->password));
         $user = $this->fp->process($message_name, $user, $fields, $checks);
         if ($user instanceof UserDB) {
             $this->mail->send($user->email, array("user" => $user, "link" => URL::get("activate", "", array("login" => $user->login, "key" => $user->activation), false, Config::ADDRESS)), "register");
             $this->redirect(URL::get("sregister"));
         }
     }
     $this->title = "Регистрация на сайте " . Config::SITENAME;
     $this->meta_desc = "Регистрация на сайте " . Config::SITENAME . ".";
     $this->meta_key = "регистрация сайт " . mb_strtolower(Config::SITENAME) . ", зарегистрироваться сайт " . mb_strtolower(Config::SITENAME);
     $hornav = $this->getHornav();
     $hornav->addData("Регистрация");
     $form = new Form();
     $form->hornav = $hornav;
     $form->header = "Регистрация";
     $form->name = "register";
     $form->action = URL::current();
     $form->message = $this->fp->getSessionMessage($message_name);
     $form->text("name", "Имя и/или фамилия:", $this->request->name);
     $form->text("login", "Логин:", $this->request->login);
     $form->text("email", "E-mail:", $this->request->email);
     $form->password("password", "Пароль:");
     $form->password("password_conf", "Подтвердите пароль:");
     $form->captcha("captcha", "Введите код с картинки:");
     $form->submit("Регистрация");
     $form->addJSV("name", $this->jsv->name());
     $form->addJSV("login", $this->jsv->login());
     $form->addJSV("email", $this->jsv->email());
     $form->addJSV("password", $this->jsv->password("password_conf"));
     $form->addJSV("captcha", $this->jsv->captcha());
     $this->render($form);
 }
Пример #9
0
	<div class="container">
	<?php 
require_once "mysqli.php";
require_once "captcha.php";
$db = new Reporter_DB();
$db->start();
$trivia = new Trivia_DB();
$trivia->start();
list($equation, $hashedCaptcha) = Captcha::calculate();
$all_reasons = $db->get_all_reasons();
$all_themes_names = $trivia->get_themes_array();
if ($_POST["selReason"] && $_POST["txtQuestion"] && $_POST["txtCaptcha"] && $_POST["selTheme"]) {
    if (!$db->check_reason_exists($_POST["selReason"])) {
        echo '<div id="user_alert" class="alert alert-danger col-sm-8 col-sm-offset-2">Invalid type of mistake.</div>';
    } else {
        if (Captcha::check($_POST["txtCaptcha"], $_POST["hashedCaptcha"])) {
            if (array_key_exists($_POST["selTheme"], $all_themes_names)) {
                $theme_id = $_POST["selTheme"];
            } else {
                $theme_id = 1;
            }
            if ($db->add_report($_POST["selReason"], $_POST["txtQuestion"], $_POST["txtComment"], $theme_id)) {
                echo '<div id="user_alert" class="alert alert-success col-sm-8 col-sm-offset-2">Report successfully submitted. ' . 'Thank you for notifying us about this mistake.</div>';
            } else {
                echo '<div id="user_alert" class="alert alert-danger col-sm-8 col-sm-offset-2">Error occured when submitting report. ' . 'Please try again later.</div>';
            }
        } else {
            echo '<div id="user_alert" class="alert alert-danger col-sm-8 col-sm-offset-2">The answer to the equation is ' . '<b>incorrect</b>. Try again.</div>';
        }
    }
} else {
Пример #10
0
 private static function validate_captcha(sForms $Field, &$errors)
 {
     if (!Captcha::check($Field->getValue())) {
         $errors['captcha'] = true;
     }
 }
Пример #11
0
<?php

error_reporting(E_ALL);
ini_set('display_errors', 1);
session_start();
require "../Captcha.php";
if (isset($_GET["check"])) {
    $isok = Captcha::check($_GET["check"]) ? TRUE : FALSE;
    header("Content-Type: application/json");
    echo json_encode(["isok" => $isok]);
} else {
    try {
        Captcha::make();
    } catch (\Exception $ex) {
        var_dump($ex->getMessage());
    }
}