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

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

au「W54S」だけcgi-lib.plで不具合が発生する

客先サイトのCGIが以下のエラーが出て使用できないといわれました。 ■エラーメッセージ cgi-lib.pl: Unknown Content-type: application/x-www-form-urlencoded; charset=shift_jis 色々と調べていくうちにauの最新機種では エラーがでるとの解説があったので試してみましたが 同機種が無い為確認できていません。(現在ユーザー様の回答待ちです) しかし、どうも腑に落ちないことがありまして投稿しました。 エラーが出て動作が出来ないといわれた機種が「W54S」 エラー発生時に他のauの機種でも同様の現象が起きているかを 確認したかったのでアクセスログを確認してアクセスされている機種を 調べたところ同じ時期に発売されたであろう機種「W55T」があり こちらでは問題が発生していないようでした。 機種によって仕様が変わったりするのでしょうか? また、同じような現象にあって確実な修正方法を ご存知の方はいらっしゃいますか? ・Perl 5.8.0 ・cgi-lib.pl 2.18 ←81行目を修正しています

  • Perl
  • 回答数1
  • ありがとう数6

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

  • ベストアンサー
  • 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

  • cgi-lib.plのShort read~というエラーについて

    perlで画像掲示板の作っています。今まで特に問題なかったのですが、突然投稿する際に、「Short Read:1370,got 0」というエラーが表示されるようになってしまいました。 cgi-lib.plをrequireしているので、その部分を読んではみたのですが、どういったエラーなのかがわかりません。 cgi-lib.plの解説ページなどもみたのですが、cgi-lib.plがどういったものかということを説明するものばかりでエラーについては探しても見つからなかったのでこちらに投稿しました。 このエラーがどういったもので、どのように対処すればよいかご存知の方がいらっしゃいましたら、ご回答をよろしくお願いします。

    • ベストアンサー
    • CGI
  • cgi-lib.pl: Unknown・・・のエラーについて

    すみません。どなたかご存知の方教えてください。CGI初心者です。メールフォームのようなものを作っており、実験段階でつまづいています。ファイルをアップし、htmlページから送信すると 「cgi-lib.pl: Unknown Content-type: text/plain 」といった表示がされてしまいます。これはなんの原因が考えられるのでしょうか? 宜しくお願いいたします。

    • 締切済み
    • CGI
  • cgi-lib.plのReadParse関数

    あるパールからcgi-libを呼び出して、ReadParse関数を使おうとするとInternal Server Errorがでてしまいます。 パールの中身は #!/usr/local/bin/perl require 'cgi-lib.pl'; require 'jcode.pl'; &ReadParse(*in); です。 そこで3行目と5行目の行頭に#をつけて飛ばすとパールは正常に動きます。 これってcgi-lib.plのReadParse関数がいけないんでしょうか? ダウンロードしたまま何も変更していないのに..... ちなみにサーバーのパールのバージョンは5.004のようです。

    • ベストアンサー
    • CGI
  • cgi-libを使って変数値渡しをしたいのですが

    cgi間の変数渡しの質問をしたのですが、うまくいかなかったので、調べてみると、 cgi-lib.pl'を使うことで簡単に値を渡せるということが分かりました。 ですが、 use lib '/home/www'; require 'cgi-lib.pl';# cgi-lib.plを呼び出す $test=1000; # 変数値渡し? form_input_post.cgi?name=$test; &ReadParse(*in); として、$testの値をform_input_post.cgiに渡そうとしたのですが。 コンパイルエラーが出てしまいました。 Can't modify constant item in scalar assignment at form_input_post.cgi line 49, near "$test;" syntax error at form_input_post.cgi line 49, near "$test;" form_input_post.cgi had compilation errors. というエラーです。 初歩的なミスな気がしますが原因がわからないので教えて頂きたいです。 よろしくお願いします。

    • 締切済み
    • CGI
  • CGI でDBI->connectするとエラー発生

    お世話になります。 CGIでORACLEに接続しようとしたところ、Internal Server Errorが発生し 困っております。 環境: ORACLE:10.2.0 DBI:1.48 DBD:DBD-Oracle1.16 PERL:5.8.0 APACHE:2.2.0 OS:RED HAT LINUX ES 3.0 プログラム上落ちる場所: DBI->connectのところ エラーの発生する傾向: APACHEでCGIを実行した時だけ コマンドライン上で実行するとエラーは発生しない また、CGIでもDBI->connectを外すとエラーは起きない APACHEのエラーログ: install_driver(Oracle) failed: Can't load '/usr/lib/perl5/site_perl/5.8.0/i386-linux-thread- multi/auto/DBD/Oracle/Oracle.so' for module DBD:: Oracle: libnnz10.so: cannot open shared object file: No such file or directory at /usr/lib/perl5/5.8.0/i386-linux-thread- multi/DynaLoader.pm line 229 今までに試した事: ・環境変数の定義確認(LD_LIBRARY_PATH等、cgiに記述) ・環境変数の取得確認(cgi実行時に画面に表示) ・/etc/ld.so.confに$ORACLE_HOME/libを追記&ldconfig実行 ・httpd.confに環境変数のセットを記述(SetEnv) ・libclntsh.so.10.0が$ORACLE_HOME/lib以下にある事を確認 ・DBDをSTATICオプションをつけてインストール ・/usr/libや/libにOracle.soをコピー ・環境変数LD_RUN_PATH(Oracle.soのパス)を追加 一体どこが悪くて動かないのか、途方にくれております。 原因として何が考えられるか、その場合どう対処すれば良いか、 ご教示いただければ幸いです。 他にも必要な情報や、試すべき事がありましたら遠慮なくどうぞ。 よろしくお願い致します。

    • ベストアンサー
    • CGI
  • W42S→W51SA(緊急です!!)

    W42Sでau music portから音楽を入れる際、エラー多発に耐え切れなくなった機種変です。 W42Sはエラーの多い機種なんでしょうか? W51SAにしてもまったくかわらないのでしょうか?

  • Windows7のローカルでCGI動作不具合

    今まで 「Windows XP」 から 「AN HTTPD Ver1.42」 を立ち上げて ローカルで 「BBSNote Ver8.0b14(しぃペインター通常)」 のCGIが動作確認出来ました。 ところが 「Windows7」 に変えてから書き込みが思うように行きません。 絵が描けて、メッセージを記入したのに 「未完了投稿が見つかりました」というエラーが表われ 再びメッセージを記入しても、また上のエラーが続きます。 CGIの中身も場所も、XPの時と7を同じにして、他のCGIは問題なく動いています。 7からセキュリティが強くなりましたし HTTPDのエラーに 「Warning: CGI TerminateProcess XXXX error 5」 とあったのでアクセス関係かなと思い、フォルダーのアクセス権も弱くしてみたのですが うんともすんとも。。 「BBSNote Ver8.0b14(しぃペインター通常)」 自体を新しくダウンロードし直しても 同じ現象で書き込みがうまく出来ません。 どなたかお力貸して頂けないでしょうか。よろしくお願い致します><

  • au W32S(ソニーエリクソン)で、電源が落ちる不具合

    au W32Sのユーザーです。 私はいつも、この携帯のカメラ機能で写真を撮る際、 最大画像サイズで撮影しています。 先日、撮った写真を友達に送ろうと、 画像をメールに適したサイズにリサイズをかけようとしたんです。 すると、 編集メニューの「リサイズ」をクリックした瞬間、電源が落ちてしまいました。 その後何度操作を繰り返しても同じで、 なぜか20回に1回くらい成功することがありました。 メモリースティック(純正品128MB)でも 本体のデータフォルダに保存したデータで試しても同じでした。 「W32Sまとめサイト」なるサイトがあり、 そこにも不具合有りとの情報が載っていたのですが、 あまりつっこんだ情報は書いてありませんでした。 そこでauに対してwebから直接この症状を訴えたところ、 「現在、W32Sにてご申告いただいた症状等の報告はございません。  頻繁に症状が発生する場合には、  最寄りのauショップに点検・修理をご依頼いただきますようお願い致します」 とのこと。 もう頭にきて、 auショップに修理の依頼に出したのですが、 数日後返ってきた回答はこういうものでした。  ・現象は確認。無償で修理するが、本体のデータはすべて消去する。  ・データフォルダが空の状態で操作すると、その症状は出ない。  ・データを消さなければ修理はできない。  ・ちゅうか、保存されたデータ自体に問題があるのでは? と、まるで私の操作方法(データ)が悪いと言わんばかりです。 もう、怒りを通り越してあきれています。 W32Sユーザーの方、同じ症状でお困りの方や、 問題をこうやったら解決できた、という方はいますか? もう、あきらめて泣き寝入りするしかないのでしょうか。 宜しくお願いします。

  • au W33SAII バーコードリーダーについて教えて下さい

     auのW33SAIIの機種を使っているのですが、パソコン画面から、ダーコードリーダーは読み取れないのですか?主題歌をダンウロードしたくてやっていのですが、読み込んではくれるのですが、それを使ってアクセスできません。お店に行って色々試したのですが、本とかのは読み込んでそれを使ってアクセスできるのですが、パソコン画面だと読みこんではくれるのですが、それを使っていけません。gooのバーコードリーダーでも読み込んでくれるのですが、それを使ってはいけません。パソコン画面だとエラーが出るのでしょうか?

  • au W63CA の携帯で

    au W63CA の携帯で 教えてgooのトップページにアクセスすると 携帯の電源が落ちてしまいます。 自分の携帯だけでしょうか? 以前はそんなこと起こらなかったのに、 つい最近その現象が起こるようになりました

専門家に質問してみよう