OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
締切り
済み

掲示板の認証でエラーが生じてしまいます。

  • 困ってます
  • 質問No.139397
  • 閲覧数25
  • ありがとう数2
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 66% (4/6)

掲示板をPerlで作成してもらい、社内で使っておりますが、ユーザーIDに『ー』(例えばカードの2文字めの伸ばす文字)を使用すると、登録時は問題ないのですが、ログイン時の認証でCGIのエラーとなります。

掲示板を作って頂いた方に伺うと、
**********************************
表示は問題ないのですが、Perlの一部の関数
(おそらく正規表現を使用できる文字列操作関数)で
「ー」という文字を使うとエラーになるようです。
**********************************
という分析を頂いております。

この問題の解決方法はございませんでしょうか。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全2件)

  • 回答No.1
レベル11

ベストアンサー率 30% (75/244)

jcode.plを使えば解決できます。 グーグルなどで探せば、どこかに落っこちてると思うので、それを、プログラムと同じフォルダに入れ、(パスが通っていればどこでも構いません)例えば$idにIDが入っていれば、 require 'jcode.pl'; &jcode'convert(*id,'euc'); とすれば、$idがEUCに ...続きを読む
jcode.plを使えば解決できます。

グーグルなどで探せば、どこかに落っこちてると思うので、それを、プログラムと同じフォルダに入れ、(パスが通っていればどこでも構いません)例えば$idにIDが入っていれば、

require 'jcode.pl';
&jcode'convert(*id,'euc');

とすれば、$idがEUCになるので、「ー」でエラーになりません。


  • 回答No.2
レベル11

ベストアンサー率 58% (114/195)

全角の「ー」であればSJIS表現で送信されてきた場合、2バイト目がブラケットなので正規表現関数系で引っかかりますね。 対処方法としては 1、エスケープする 2、コード体系を変更し、引っかからないものにする という方法があります。 一般的には2の方法、つまり下記でlucky111さんが提示されている方法を使うのですが、その場合、半角でブラケットやハイフンなど正規表現でのメタキャラクタがある場合にも ...続きを読む
全角の「ー」であればSJIS表現で送信されてきた場合、2バイト目がブラケットなので正規表現関数系で引っかかりますね。
対処方法としては
1、エスケープする
2、コード体系を変更し、引っかからないものにする
という方法があります。
一般的には2の方法、つまり下記でlucky111さんが提示されている方法を使うのですが、その場合、半角でブラケットやハイフンなど正規表現でのメタキャラクタがある場合にもうまく通らなくなってしまいます。
なので
・本当に正規表現関数評価が必要かもう一度チェックして必要無いのであれば、通常の文字列検査に変更する。
・ヤバそうな文字は全部エスケープする。
等の方法を取った方が良いでしょう。
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ