• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:au「W54S」だけcgi-lib.plで不具合が発生する)

au「W54S」のcgi-lib.plで不具合発生|解決策は?

このQ&Aのポイント
  • auの最新機種「W54S」でcgi-lib.plを使用するとエラーが発生し、その原因と解決法について調査しています。
  • 同様のエラーが他のau機種でも発生しているかどうかを確認するため、アクセスログを調査したところ、同時期に発売された「W55T」では問題が発生していないことが分かりました。
  • このエラーによって動作ができない状況にある方や確実な修正方法をご存知の方がいらっしゃいましたら、教えていただきたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • nil314
  • ベストアンサー率66% (2/3)
回答No.1

0. 情報が抜け落ちています 81行目にあなたがどんな改変を行ったかがわからない。 0a. 携帯のブラウザは百花繚乱、機種で判断してはいけません。 リリースした時期によって実装が違うようです。 1. それでもごり押ししてcgi-pl2.18 1999/02/23(!)(以下.pl) を読んでみました。 考えられる点。 W54SAのブラウザがPOSTデータを吐くときに POST hogehoge(何かの文字列。この件に関係ない) Host: foobarhoge (何かの文字列。この件に関係ない) Content-type: application/x-www-form-urlencoded; charset=shift_jis とサーバーに返しているようです(憶測) すると $type と $ENV{'CONTENT_TYPE'} には application/x-www-form-urlencoded; charset=shift_jis が入ります。 本来 「;charset=shift_jis」というのは.plでは望まれていない余計な情報であるため、(82行目の$type eq 'application/x-www-form-urlencoded'を見てください。*この余計な情報がついているとここを通り抜けてしまう) 奇形情報として 80行目から始まるifを通り抜け 117行目の elsif ($ENV{'CONTENT_TYPE'} =~ m#^multipart/form-data#) にもマッチせず 280行目の &CgiDie("cgi-lib.pl: Unknown Content-type: $ENV{'CONTENT_TYPE'}\n"); でエラーを吐きます。 これがあなたの見ているエラーです。 2a. 望ましい改善策。 CGI.pm がサーバーの条件や、仕事の条件で使えるのであれば こちらを利用する。(98年に製作された物を使うのは危険すぎる。) 圧倒的に最新であり改善されている可能性があります。 2b. 望ましくない改善策。 付け焼刃ですが、 82行目の $type eq 'application/x-www-form-urlencoded' を $type =~ m{application/x-www-form-urlencoded} に変えると尻尾にごみがついていてもとりあえずエラー処理しなくなるはずです。 3. まことに勝手なお願いですが、30分ほど費やした私のために。 もしこれがあなたのお役に立てて給料がたくさんクライアントから頂けたら お礼ポイントは結構ですので どんな募金でもOKですのでコンビ二にでも立ち寄られた際に 50円くらい 募金箱に入れていただけ無いでしょうか。 では御健勝をお祈りして。

yu_chikun
質問者

お礼

貴重なお時間を割いていただきありがとうございました。 古いソースを使っているので確かに新しいものには ついていけないかも知れませんね。。。 CGI.pmを利用することにします ありがとうございました。

関連するQ&A