示例#1
0
 public static function generate_image($args = array())
 {
     if (!self::use_captcha()) {
         return;
     }
     $sb_captcha = self::get($args);
     $file_name = self::get_captcha_session();
     $transient_keys = self::build_transient_name($file_name);
     $force = isset($args['force']) ? (bool) $args['force'] : false;
     if ($force || empty($file_name) || false === get_transient($transient_keys['prefix']) || !file_exists(trailingslashit($sb_captcha->tmp_dir) . $file_name)) {
         $old_file_name = $file_name;
         $word = $sb_captcha->generate_random_word();
         $prefix = mt_rand();
         $file_name = $sb_captcha->generate_image($prefix, $word);
         $transient_keys = self::build_transient_name($file_name);
         self::set_captcha_session($file_name);
         self::set_transient($transient_keys['prefix'], $prefix);
         self::set_transient($transient_keys['code'], SB_Core::hash_password($word));
         self::remove($old_file_name);
     }
     $file_name = trailingslashit(plugins_url()) . 'really-simple-captcha/tmp/' . $file_name;
     return $file_name;
 }