Top > diary > 2006-12-17

getに渡している文字を数えてみると Edit

 実験中の環境(Windows2000,Apache2.0.55,PHP4.3.11)で作成中のプラグインからgetに渡される文字の数を数えてみました。

  0
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
&refer=PukiWiki%2F1.4%2FManual%2FPlugin%2F			42
&sort_ad=a-a-d-a-a-a					20
&sort_type=-r-r-r-r-r					21
&sort=2&page_link=short					23
&sort_sec=2						11
&section&filter_0=b					19
&filter_1=bugtrack_list+					24
&filter_2=%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E5%9E%8B	55
&filter_3=%E2%98%85%E2%98%86%E2%98%86			37
&filter_4=%E3%83%90%E3%82%B0%E8%BF%BD%E8%B7%A1%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%81%AE	91
&set_filter_form=						17
&foot=lower						11
&main_page=PukiWiki/1.4/Manual/Plugin			37
							408

408個… (^^;

一応これを超えるとダメっぽいです。
そしてPOSTに変えてみると…Apacheがエラーを吐きました。orz

昨晩、調べ途中に寝てしまったのですが、なんとなく原因が見えてきました。
当初、POSTによるApacheのエラーと予測していたのですが、Apacheのエラーを元に調べてみるとPHPに問題があるようです。つまりPOSTからPHPに引き渡すまでは正常に処理されているのですが、PHPから引き渡された内容を処理する段階で一部関数に於いて、致命的エラーが発生するようです。

ちなみに、Apacheのエラー文で検索をかけた時に質問箱3/210等のPukiWiki関連が多く検出されました。
(アクションで単純に引き渡された文字を表示するだけならエラーは発生しません。)

 少し調べてみました。どうやら質問箱3/210と同じ現象でインラインが抱える問題のようです。今作成してるunion_table.inc.phpは内部処理にインラインプラグインを使っているため、この問題に引っかかったようです。
Apache2+PHP4の組み合わせでPukiWikiを利用した環境の場合、インラインに引渡す文字列の量でエラーが発生し、リセットがかかってしまう感じなのかな…。
ちなみに確認した環境はPHP4.3.11とPHP4.4.1なので、PHP4とは言い切れないかも…。

Apacheのエラーログ Edit

[Sun Dec 17 18:35:21 2006] [notice] Parent: child process exited with status 3221225725 -- Restarting.
[Sun Dec 17 18:35:21 2006] [notice] Apache/2.0.55 (Win32) PHP/4.3.11 configured -- resuming normal operations
[Sun Dec 17 18:35:21 2006] [notice] Server built: Oct  9 2005 19:16:56
[Sun Dec 17 18:35:21 2006] [notice] Parent: Created child process 1440
[Sun Dec 17 18:35:21 2006] [notice] Child 1440: Child process is running
[Sun Dec 17 18:35:21 2006] [notice] Child 1440: Acquired the start mutex.
[Sun Dec 17 18:35:21 2006] [notice] Child 1440: Starting 250 worker threads.

Reload   New Lower page making Edit Freeze Diff Upload Copy Rename   Front page List of pages Search Recent changes Backup Referer   Help   RSS of recent changes