跳到网页内文区。

:::

旅舍更新日志 卷十一


日期: 8.23.’07.
  1. 修正 imacat 资料库定义, LPAD() 函数的第三个参数应为文字,原使用数字 0 ,修正为文字 '0'
  2. 修正 imacat 资料库定义,加上 acctsubjaccttrxacctrecs 三个资料表,与 acctsubj_ischild() 函式。
  3. 加上 Selima::imacat::List::AcctSubj 类别、 Selima::imacat::Form::AcctSubj 类别与 Selima::imacat::Checker::AcctSubj 类别,加上 acctsubj.cgi 程式。
  4. 修正 Selima::imacat::HTML 模组的 @ADMIN_SCRIPTS 变数,加上 acctsubj.cgiaccttrx.cgiacctrecs.cgi 三个程式。

日期: 8.20.’07.
  1. 修正 Selima::*::List::Funds 类别的 new() 方法,移除不再用到的 cat0cat1cat2cat3 栏位标题;修正 $self->{"pre_filter"} 属性的进阶筛选条件,排名前三分之一、四分之一的条件原用小於或等於 <= ,改用小於 < ,以避免排名 1/2 时,因取该分区中位数正为 0.25 ,而被误列入排名前四分之一的问题。

日期: 8.18.’07.
  1. 修正 funds 资料表, *rank 栏位由 smallint 改为 numeric(4, 4) ,原储存基金排名名次,改储存排名占该类基金的百分比位置,并加上 *rnkdsc 排名的叙述。如此得以基金表现百分比位置排名,而非单以名次排名,以减少特殊类形基金因同类基金只有一二种,故很容易同类排名第一第二,单按名次排名没有意义的问题。於汇入基金绩效资料时自行计算排名,避免基金绩效资料排名有误时汇入错误的问题。并於汇入时同时写入基金排名的叙述,以减少列表时,即时计算该类基金数以显示排名叙述,效率过低的问题。
  2. 修正 funds_list_* 浏览,使用 *rnkdsc 栏位显示排名,不再即时计算排名,以避免无谓的耗时低效率;将 cat0cat1cat2cat3 合为一栏 cat 显示,以简化列表。
  3. 修正 Selima::*::List::Funds 类别的 new() 方法、 pre_filter() 方法及 html_search() 方法, $self->{"pre_filter"} 属性原为进阶筛选条件的字串数列,改为进阶筛选条件的选项数列的数列,每一选项数列包含筛选条件和文字叙述。如此可加上类似4433 法则等广为人知 ,有特定名字的筛选条件。去除 free 条件,自订任意条件改为内建,不需列於 $self->{"pre_filter"} 属性进阶筛选条件清单中。内建加上 none 无进阶筛选条件。

日期: 6.23.’07.
  1. 修正 Selima::emandy::HTML 模组的 html_nav() 方法,加上需要时显示 $$args{"header_html_nav"}

日期: 6.8.’07.
  1. 修正 Selima::Destroy 类别的 DESTROY() 方法及 Selima::HTTP 模组的 http_*() 函式,原先用 eval {} 回圈清理 IO::NestedCapture ,改用 IO::NestedCapture->instance->{"STDOUT_current"} 作回圈判断,以避免 eval {} 失败有时会导致程式不正常中断的问题。
  2. 修正 Selima::GetLang 模组的 getlang_env() 函式,先检查 $GET$POST 设定没,以避免尚未设定 $GET$POST 即呼叫时,产生的警告。
  3. 修正 Selima::GetLang 模组的 getlang_filename() 函式,先检查 $REQUEST_PATH 设定没,以避免尚未设定 $REQUEST_PATH 即呼叫时,产生的警告。
  4. 修正 Selima::Init 模组的 checkspam_spammers() 函式,修正检查 $POST->param("url") 前未检查有没有 $POST->param("url") 的错误。

日期: 5.26.’07.
  1. 修正 Selima::Init 模组、 Selima::DataVars 模组、 Selima::Destroy 类别、 Selima::List 类别、 Selima::List::* 类别、 Selima::Form 类别、 Selima::Form::* 类别、 Selima::Preview 模组、 Selima::*::HTML 模组、 Selima::*::Rebuild 模组、 Selima::*::List::* 类别、 Selima::*::Form::* 类别、 guestbook.cgi 程式、 garbage.cgi 程式、 logout.cgi 程式、 saveform.cgi 程式、 showenv.cgi 程式、 test.cgi 程式、 counter.cgi 程式、 last_update.cgi 程式及 subs_counter.cgi 程式,原来自己另存输出,改用 IO::NestedCapture 抓标准输出,以类似 PHP 输出入缓冲区的方式,处理网页输出,以简化网页输出处理。移除 Selima::DataVars 模组的 $HTML 变数。
  2. 修正 Selima::List::Guestbook 类别、 Selima::Form::UserMem 类别、 Selima::Form::GroupMem 类别、 Selima::Form::UserPref 类别、 Selima::Form::Guestbook 类别、 Selima::Form::LinkCatz 类别、 Selima::htc::Form::NLArt 类别、 Selima::imacat::Form::LtZhPoem 类别及 Selima::wov::Form::NLArt 类别,移除不用的 :output 类变数引用。
  3. 修正 Selima::HTTP 模组的 http_*() 函式,处理前先清空 IO::NestedCapture 的输出转向。
  4. Selima 系统版本更新为 3.10 。改用 IO::NestedCapture 作网页输出控制后,所有的网页输出处理都要修正,异动档案很多。

日期: 5.24.’07.
  1. 修正 counter.cgi 程式,移除不该存在的 in_our_network() 函式。 in_our_network() 函式使用早已移除宣告的 @OUR_NETWORKS 阵列及 Net::IPv4Addr 模组的 ipv4_in_network() 函式,造成程式错误无法执行。从 Net::IPv4Addr 模组改用 Net::CIDR::Lite 模组已经两个多星期了了,才发现这个问题,这段期间程式都无法作用,我却完全不知道,实在是很不应该。

日期: 5.23.’07.
  1. 修正 Selima::Encrypt 模组的 encrypt() 函式, ASCII 可列印字元从 31 开始有误,修正为 32 。

日期: 5.23.’07.
  1. 修正 Selima::Encrypt 模组,因 Crypt::Rijndael 已於 2007-02-23 发行 1.04 新版,已支援 x86_64 平台,故舍 Crypt::Rijndael_PP ,改回用 Crypt::Rijndael

日期: 5.8.’07.
  1. 修正 Selima::GeoIP 模组,原用 Net::IPv4Addr 模组,改用 Net::CIDR::Lite 模组,移除 is_private_ip() 函式,改用 $PRIVATE_NETWORKS 物件。 Net::CIDR::Lite 模组效能好像比 Net::IPv4Addr 模组好。
  2. 修正 counter.cgi 程式,移除未用到的 Geo::IP 模组,原用 Net::IPv4Addr 模组,改用 Net::CIDR::Lite 模组,移除 in_our_network() 函式、 @OUR_NETWORKS 阵列及 $IN_OUR_NETWORK 变数,改用 $OUR_NETWORKS 物件。

日期: 4.8.’07.
  1. 修正 Selima::Init 模组,修正 checkspam_reqheads() 函式,加上两个新的规则;修正 checkspam_spammers() 函式,加上一个新的规则。

日期: 4.3.’07.
  1. 修正 Selima::Checker 类别的 _check_path() 方法,将移除 index.html 的部份前移到 _trim() 后,以便正确检查,并避免后来重复路径检查时产生的错误。

日期: 3.18.’07.
  1. 修正各站的首页,计数器和上次更新日期,回复用 mod_perl GD 的计数器。 GD 造成记忆体区段错误 Segmentation fault 的原因找到了,也解决了。 PHP 中也有 gd 模组,但 PHP 的 gd 用的是内附的 gd 函式库, Perl 的 GD 用的是系统的 gd 函式库,同时载入 mod_perl.solibphp5.so 时,两者版本不同互冲所致。解决方法,只要重新编译 PHP ,原参数 with-gd=shared 改为 --with-gd=shared,/usr ,改连结系统的 gd 函式库即可。

日期: 3.16.’07.
  1. 运用新版 Apache 2 的内容协调功能,新的 prefer-language 环境参数, SetEnvIf CookieHeader add Set-Cookie 设定,终於解决了旅舍的理想,所选的语言可以一直持续下去!过去如果网站语言没有自动选到自己习惯的语言,切到该语言页后,再看下一页,又会回到之前错误的语言中。现在利用新版 Apache 2 的语言协调选择功能,终於可以把语言固定下来了!耶! ^_*'

日期: 3.15.’07.
  1. 修正各站的首页,最近更新日期暂时改用 CGI 的图型。 GD 在 mod_perl 2 下会 crash , bug 尚待回报。

日期: 3.14.’07.
  1. 修正 Selima::imacat::Rebuild 模组的 rebuild_links() 函式、 rebuild_diary() 函式、 rebuild_changelog() 函式和 rebuild_literalzh() 函式,取消制作预设语言的符号连结。 Apache 2 有 ForceLanguagePriority 设定,不需要另外制作预设语言的符号连结。

日期: 3.13.’07.

升级为 Apache 2 + mod_perl 2 。

  1. 修正各站的首页,计数器暂时改用 CGI 的计数器。 GD 在 mod_perl 2 下会 crash ,原因待查。
  2. 伺服器版本升级为 Apache 2 (2.0.59) + mod_perl 2 (2.0.3) 。
  3. Selima 系统版本更新为 3.00 。由 mod_perl 1 升级到 mod_perl 2 ,为配合 mod_perl 2 的新处理方式,系统程式大范围重写,异动非常大。

日期: 3.13.’07.
  1. 修正 Selima::HTTP 模组及 Selima::Destroy 类别,原用 $r->header_out() 方法,改用 $r->headers_out()->set() 方法。
  2. 修正 Selima::Login 模组 upd_login_info() 函式的注解,原 Logged-in from Apache/mod_perl HTTP Authentication 改为 Logged-in from Selima::AuthDig Digest Authentication
  3. 修正 Selima::Init 模组的 initenv() 函式,原先直接检查 Selima::AuthDig 传回的 $AUTHINFO ,改为依是否载入 $INC{"Apache/AuthDigest/API.pm"} ,而检查 $AUTHINFO$ENV{"REMOTE_USER"} ,来决定 unauth()upd_login_info() 。虽然用 mod_auth_digest 登入,程式本身无法和登入过程一体化,但是应该可以相信 Apache 的登入资讯,不会有安全问题吧~
  4. 修正 showenv.cgi 程式,修正在 mod_perl 2 下时,显示的方法名称。
  5. 修正 Selima::DataVars 模组,原先以 $ENV{"GATEWAY_INTERFACE"} 检查 $IS_CGI ,因 mod_perl 2 下载入这个模组的时候还没有 $ENV{"GATEWAY_INTERFACE"} ,改为以 $ENV{"GATEWAY_INTERFACE"}$ENV{"MOD_PERL"} 检查。
  6. 修正 Selima::Destroy 模组的 DESTROY() 方法,原先在 mod_perl 下自动执行 $r->send_http_header() ,改为检查只有 mod_perl 1 下才会执行 $r->send_http_header()
  7. 修正 Selima::Init 模组的 initvars() 方法,原用 $r->headers_in()->add() 方法,改用 $r->headers_in()->set() 方法。
  8. 修正 Selima::Init 模组的 initenv() 函式,先执行 $MAIN->can("siteconf") ,以取得 $PACKAGE ,以便传给 initvars() ;修正 initvars() 原型,由 initvars(;$) 改为 initvars($) ,因为现在一定会传入参数,不可能省略。
  9. 修正 Selima::DecForm 模组的 init_forms() 函式,原先由 $rawpost = $r->content 取得 POST 表单的内容,改依 $IS_MP2 判断,由 $r->read($rawpost, $r->headers_in->get("Content-Length"))$rawpost = $r->content 取得 POST 表单的内容。
  10. 修正 Selima::HTTP 模组的 http_*() 函式,原用 $r->err_header_out() 方法,改用 $r->err_headers_out()->set() 方法;加上引用 Apache2::Response;
  11. 修正 Selima::Destroy 类别的 DESTROY() 方法,原用 $r->headers_out->set("Content-Length"=>length $HTML); 方法,改用 $r->set_content_length(length $HTML); 方法。

目录 | 第一页 | 前一页 | 9 | 10 | 11 | 12 | 13 | 下一页 | 最末页