/** * 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; }
$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]));
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(); } }
<?php Validator::extend(Config::get('latrell-captcha.validator_name'), function ($attribute, $value, $parameters) { return Captcha::check($value); });
/** * 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; }
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); //вывод формы }
$_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); }
<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 {
private static function validate_captcha(sForms $Field, &$errors) { if (!Captcha::check($Field->getValue())) { $errors['captcha'] = true; } }
<?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()); } }