Exemplo n.º 1
0
 /**
  * Checks if a Captcha string matches the Captcha attached to the comment post
  * Returns true if there is a match.
  *
  * @param string $key
  * @param string $mollom_session
  * @param string $code_ok
  * @return bool
  */
 function checkCaptcha($mollom_session, $code_ok)
 {
     // set keys
     Mollom::setPublicKey(getOption('public_key'));
     Mollom::setPrivateKey(getOption('private_key'));
     $servers = Mollom::getServerList();
     Mollom::setServerList($servers);
     if (!Mollom::checkCaptcha($mollom_session, $code)) {
         return false;
     }
     query('DELETE FROM ' . prefix('captcha') . ' WHERE `ptime`<' . (time() - 3600));
     // expired tickets
     $result = query('DELETE FROM ' . prefix('captcha') . ' WHERE `hash`="' . $mollom_session . '"');
     $count = mysql_affected_rows();
     return $count == 1;
 }
Exemplo n.º 2
0
	public static function check($code)
	{
		self::prepare();
		try
		{
			if (Mollom::checkCaptcha(Session::get('mollom/sessionid'), $code))
			{
				Session::delete('mollom/sessionid');
				return null;
			}
			else
			{
				return self::createCaptcha();
			}
		}
		catch (Exception $e) 
		{
			return new MollomInvalidConfigCaptcha;
		}
	}
Exemplo n.º 3
0
 public function action_mollom_fallback(SuperGlobal $handler_vars, Comment $comment)
 {
     if (!empty($handler_vars['mollom_captcha']) && !empty($comment)) {
         if (Mollom::checkCaptcha($comment->info->mollom_session_id, $handler_vars['mollom_captcha'])) {
             $comment->status = 'unapproved';
             $comment->insert();
             $anchor = '#comment-' . $comment->id;
             Utils::redirect($comment->post->permalink . $anchor);
             exit;
         } else {
             Session::error(_t('Sorry, that answer was incorrect. Please try again.', 'mollom'));
             $this->send_captcha($comment);
             exit;
         }
     } elseif (empty($comment)) {
         die(_t('Sorry, the gremlins ate your comment...', 'mollom'));
     } else {
         $this->send_captcha($comment);
         exit;
     }
 }