Pukiwiki
公開日:
:
FreeBSD
自民党キター と喜んでいる最中ですが,はまっていた事があったの備忘録をかねてのメモ.
# 選挙ネタはそのうちかければ.
PHP の Wiki である Pukiwiki ですが,PHP 5.0.5 にあげたとたん,次の様なエラーを出力して使えなくなってしまった.
—– エラー ここから —–
Fatal error: Only variables can be passed by reference in /home00/seichan.org/data/public_html/wiki.bak/rules.ini.php on line 35
—– エラー ここまで —–
原因は,PHP のセキュリティ向上の為の修正によるもので,array() で定義された配列定数を return する場合、返り値を変数にいれずに直接使用すると定数値にアクセスしたこととなり致命的エラーとなるもの.
と言う訳で,QuickHack してみる.
変更したファイルは,rules.ini.php,plugin/recent.inc.php,plugin/counter.inc.php の3つだが,他にも同様な変更が必要かも知れない.
その際は,コメント欄にコメントをくれれば嬉しいかも.
で,変更点を明確にする為に,diff 形式をそのまま乗せます.ここで使用している Pukiwiki のバージョンは,1.4.5_1 です.
—– rules.ini.php ここから —–
%diff -u rules.ini.php.bak rules.ini.php
— rules.ini.php.bak Mon Sep 12 00:32:01 2005
+++ rules.ini.php Mon Sep 12 00:20:50 2005
@@ -17,6 +17,10 @@
/////////////////////////////////////////////////
// ユーザ定義ルール(直接ソースを置換)
+$page = $vars[‘page’];
+$page = explode(‘/’, $page);
+$page = array_pop($page);
+
$str_rules = array(
‘now\?’ => format_date(UTIME),
‘date\?’ => get_date($date_format),
@@ -24,7 +28,8 @@
‘&now;’ => format_date(UTIME),
‘&date;’ => get_date($date_format),
‘&time;’ => get_date($time_format),
– ‘&page;’ => array_pop(explode(‘/’, $vars[‘page’])),
+// ‘&page;’ => array_pop(explode(‘/’, $vars[‘page’])),
+ ‘&page;’ => $page,
‘&fpage;’ => $vars[‘page’],
‘&t;’ => “\t”,
);
—– rules.ini.php ここまで —–
—– plugin/recent.inc.php ここから —–
%diff -u recent.inc.php.bak recent.inc.php
— recent.inc.php.bak Mon Sep 12 00:34:24 2005
+++ recent.inc.php Mon Sep 12 00:21:10 2005
@@ -33,7 +33,9 @@
}
// 先頭のN件(行)を取り出す
– $lines = array_splice(file(PLUGIN_RECENT_CACHE), 0, $recent_lines);
+// $lines = array_splice(file(PLUGIN_RECENT_CACHE), 0, $recent_lines);
+ $fdata = file(PLUGIN_RECENT_CACHE);
+ $lines = array_splice($fdata, 0, $recent_lines);
$date = $items = ”;
foreach ($lines as $line) {
—– plugin/recent.inc.php ここまで —–
—– plugin/counter.inc.php ここから —–
%diff -u counter.inc.php.bak counter.inc.php
— counter.inc.php.bak Mon Sep 12 00:36:13 2005
+++ counter.inc.php Mon Sep 12 00:30:23 2005
@@ -14,7 +14,9 @@
{
global $vars;
– $arg = strtolower(array_shift(func_get_args()));
+// $arg = strtolower(array_shift(func_get_args()));
+ $fdata = func_get_args();
+ $arg = strtolower(array_shift($fdata));
switch ($arg) {
case ” : $arg = ‘total’; /*FALLTHROUGH*/
case ‘total’: /*FALLTHROUGH*/
—– plugin/counter.inc.php ここまで —–


関連記事
-
-
PHPki で簡単証明書運用 (1)
この記事は phpki-0.83.tar.gz を元に書きましたが,不具合多数の為最新のソースコード
-
-
fukuoka-u.ac.jp の NTP サーバ
2ch の Linux 板のあるスレッドに,福岡大学の ntp 管理者(?) からの書込みがあった.
-
-
7-STABLE がきたよ
おひさです.seichan です. 7-current が,7-stable に落ちてきたの.
-
-
FreeNAS 0.69 (Kwisatz Haderach) の日本語環境アップデート
おひさしぶりです.Seichan です.FreeNAS 0.69 が出てからちょっと立ちました.とて
-
-
PHPki で簡単証明書運用 (4) 【作成した証明書を管理する】
Seichanです.こんばんわ. 先日の「PHPki で簡単証明書運用 (3) 【署名されたサーバ
-
-
CVSup と GEOM
FreeBSD で atacontrol を使いこなしてみる? を公開した前後,GEOM 関連を色々
-
-
qmail SMTP-AUTH imapext
imapext ML を見てみたら,Yuuji Hirose さんが,imapext 形式のパスワー
-
-
antibadmail その後
2005/12/24 に antibadmail を導入し,約3週間たちました.現状の状態を報告して
-
-
FreeBSD で NFS (5) 【NFSクライアントとマウントオプション】
Seichan です.こんばんわ.公私ともにドタバタしていてまったく進みません... 前回「Fre