**[[質問箱/240]] [#hb872095] |RIGHT:70|LEFT:410|c |~サマリ|エンコード/デコード関数のバグ?| |~バージョン|1.3.5| |~投稿者|[[showyou]]| |~状態|完了| |~投稿日|&new{2003-08-12 (TUE) 01:54:32};| ***質問 [#se3ff017] :PukiWikiのバージョン|1.3.5 :PukiWikiが稼働しているOS種類、バージョン|Redhat Linux 9 :PukiWikiを稼働させているWEBサーバー種類、バージョン|Apache 2.0.40 :PukiWikiが使用するPHPバージョン|4.2.2 はじめまして。showyouと申します。 今回内輪向けにPukiWikiをインストール手順に従って設置しようと思ったのですが、PukiWiki 1.3.xのインストールにあるような、MenuBarがはじめから表示されず、また編集されたFrontPageが一覧に複数出たりしました。 FTPで/wikiを見たところ、ファイル名のアルファベットが、アルファベットの大小以外まったく等しいファイルが見つかりました。 そこで、エンコードとデコードに問題があると思い、func.phpをのぞいたところ、次のような記述がありました。 - func.php 143行目 $enkey .= sprintf("%02X", ord($ch)); - func.php 157行目 $dekey .= chr(intval("0x".$ch,16)); この様子だと、大文字のアルファベットでエンコードを行い、小文字のアルファベットでデコードを行っているように見えるのですが、これは仕様でしょうか? バグなのか仕様なのかわからなかったので、こちらに書き込みました。 ***回答 [#o4052d39] -[[reimy]] &new{2003-08-12 (TUE) 03:09:11}; ~MenuBarが「はじめから」表示されないのは、MenuBarのページを作成していないからでは? インストール直後はMenuBarのページは存在しないので、作成する必要があります。 -[[sha]] &new{2003-08-13 (WED) 00:23:48}; ~ちなみに、$dekeyの方ですが、「小文字のアルファベットでデコードを行っている」訳ではありません。''0x''は16進数を数値として扱う場合に頭につけるおまじないです(上の例では必ずしも必要ではないですが)。$chに格納される16進数の文字列は、大文字でも小文字でも動作します。この辺の詳細は、[[PHPの整数リテラル:http://jp.php.net/manual/ja/language.types.integer.php]]を参照のこと。従いまして、少なくともそこが原因ではなさそうです。 -[[showyou]] &new{2003-08-14 (THU) 06:58:08}; ~原因が判明しました。wikiディレクトリの中のファイルが、FTPソフト(FFFTP)で転送する際に、大文字のアルファベットがすべて小文字に変換されてしまっていたのが問題のようです。ちなみに今回は、インストール直後でも、MenuBarに最新のX件というのがありました(最初はそれすらなかった)。御手数おかけしました。 #comment