CGI-BBS > 電子掲示板 > 簡易BBS > 「名前欄」に記入された全角スペースを半角スペースにしたい。


カレッヂ
カレッヂ


質問者 アー  投稿日 6/22(金) 11:58:46
簡易BBS version 8.93を使用しています。
投稿者の名前欄に全角スペースを記入されると
それが文字バケすることがあって困っています。

全角スペースを記入すると
1.勝手に半角スペースに変換する
2.エラーメッセージが出る
のどちらかにしたいのですが、
スクリプト中で色々いじってみても、
上手く全角スペースを認識してもらえませんので
エラーを出すことも、変換することも出来ません。

&jcode'convert(*value,'sjis');
の後に
&jcode'tr(*value," "," ");
を追加すると、本文の全角スペースも半角スペースにされます。
$FORM{'name'} =~ s/ / /g;
を投稿者名が未記入の時のエラー処理の下に追加しても無理でした。

凄く初歩的なことなのかもしれませんが、ご教授お願いします。
回答者 呑兵衛  [削除]  投稿日 6/22(金) 19:40:42
呑兵衛といいます。

エラーを吐き出すようにしましょうか。
その前に
> &jcode'tr(*value," "," ");

> $FORM{'name'} =~ s/ / /g;
など、このチェックでスクリプトを変更した部分を削除しましょう。
よく点検してください。
デフォルトのスクリプトに対する追加ならうまくいかないのはおかしいですので。

で、sub registの
if ($FORM{'name'} eq '') { &error('入力ミス','投稿者を記入してください.'); }
に続けて
if ($FORM{'name'} =~ / | /) { &error('入力ミス','空白は半角も全角もだめ.'); }
を追加します。

これでだめなら $FORM{'name'} または $value をキーワードにスクリプト全体を検索し、
関連のある項目をチェックしましょう。
あなたの改造部分で何か引っ掛かるかもしれません。
質問者 アー  [削除]  投稿日 6/22(金) 21:07:08
呑兵衛さん、はじめまして。

さっそく教えていただいたとおりに追加してみました。
ただ、半角スペースは可、全角スペースは不可ということにしたかったので
if ($FORM{'name'} =~ / /) { &error('入力ミス','投稿者名に全角の空白を含む投稿は受け付けられません。'); }
というようにしてみました。

AN HTTPDでテストしたところ、無事、エラーメッセージが出ました。
本当にありがとうございました。
とても助かりました。

早速、今からFTPして、使用したいと思います。
お世話になりました。

このページは終了したので返信(回答)は書きこめません

Web裏技