• 締切済み

CGI掲示板~禁止ワード追加カスタマイズ

やっとここまでできました。 前回の質問の後に追加できないので、新たに投稿します。 詳しい内容は前回の質問を見て下さい。 なんとか独自で以下のように禁止ワードを設定できましたが、 最高でも18個が限界のようです。あとはエラーが出ます。 これを好きなだけ設定する方法を教えて下さい。 初期設定の中に追加 ↓↓↓ ## 禁止文字 @haijyo = ( ,'殺' ,'死' ,'宣伝' ,'無修正'); 実際の登録処理の中に追加 ↓↓↓ # 禁止処理 foreach $haijyo (@haijyo) { if ($comment =~ /$haijyo/) { &error('コメントに禁止ワードがあるようです'); } } foreach $haijyo (@haijyo) { if ($name =~ /$haijyo/) { &error('名前に禁止ワードがあるようです'); } } foreach $haijyo (@haijyo) { if ($title =~ /$haijyo/) { &error('タイトルに禁止ワードがあるようです'); } } foreach $haijyo (@haijyo) { if ($risou =~ /$haijyo/) { &error('希望する相手に禁止ワードがあるようです'); } } ここまで必死にきました。宜しくお願いします。

みんなの回答

  • taaaaaaa
  • ベストアンサー率38% (31/80)
回答No.6

外部ファイルに記述するには、 require './xxx.cgi'; などとすれば出来ますよ。 禁止文字が増えれば外部ファイルのほうがいいかもしれません。

参考URL:
http://joho.boo.jp/memo/writer.cgi?mode=detail&no=41
すると、全ての回答が全文表示されます。
回答No.5

No.4さんのご指摘にあるShift-JIS問題のような気がしますが、No.3さんへの補足情報で示された@haijyoデータの中には該当するデータがみられません。ただ、No.3さんの回答への補足情報は、この@haijyo データで「エラー」なるものが出ているのかどうか分かりません。データの数が18個ですから、正常に動いているデータなのでは、と思われます(18個までは動くということですから)。「エラー」なるものが出た際の設定データを示すべきです。 また、「エラー」なるものを正確に伝えた方がいいでしょう。 > やはり、多く設定するとサーバーエラーが出ます。 > 下のほうには404・・・の文字が・・?? 不正確で曖昧な情報です。404以下のメッセージをすべてコピー&ペーストして下さい。

すると、全ての回答が全文表示されます。
  • hrm_mmm
  • ベストアンサー率63% (292/459)
回答No.4

shift-jisの問題じゃないですか? 2バイト目がx5c つまり\と同じになる文字が、文字列の最後にあると'がエスケープされてプログラムエラーが発生します。 以下に文字化け対策ページを紹介します。 http://homepage1.nifty.com/nomenclator/perl/shiftjis.htm

参考URL:
http://homepage1.nifty.com/nomenclator/perl/shiftjis.htm
すると、全ての回答が全文表示されます。
  • moon_night
  • ベストアンサー率32% (598/1831)
回答No.3

>最高でも18個が限界のようです。あとはエラーが出ます。 そんなことはありません。 多分書式が間違っているのでしょう。 perl -wc ファイル名 でチェックすればどこでエラーになっているかが分かるはずです。 エラーがでる禁止ワード設定を補足していただければ間違いが分かるかもしれません。

master999
質問者

補足

レス有難うございます。書式というのが・・ 現在は以下のように設定してあります。 露骨で申し訳ないですが、正しく伝えるためなのでご容赦下さい。 ## 禁止文字 @haijyo = ( '援助' ,'殺' ,'死' ,'マンコ' ,'net' ,'com' ,'net' ,'jp' ,'糞' ,'業者' ,'宣伝' ,'舐' ,'穴' ,'自作自演' ,'有料' ,'フェラ' ,'アフィリエイト' ,'無修正' ); 以下を詳しく御願い致します。 perl -wc ファイル名 やはり、多く設定するとサーバーエラーが出ます。 下のほうには404・・・の文字が・・??

すると、全ての回答が全文表示されます。
  • calltella
  • ベストアンサー率49% (317/635)
回答No.2

http://okwave.jp/qa2858118.html ↑見つけました。 #--この掲示板についての設定--# ↑この下に ## 禁止文字 @haijyo = ( '殺'       ,'死'       ,'宣伝'       ,'無修正'      ); ↑これを追加して20個までワードを増やして #--データを一行にする--# ↑このステップの下に # 禁止処理 foreach $haijyo (@haijyo) { if ($comment =~ /$haijyo/) { &error('コメントに禁止ワードがあるようです'); } } foreach $haijyo (@haijyo) { if ($name =~ /$haijyo/) { &error('名前に禁止ワードがあるようです'); } } foreach $haijyo (@haijyo) { if ($title =~ /$haijyo/) { &error('タイトルに禁止ワードがあるようです'); } } foreach $haijyo (@haijyo) { if ($risou =~ /$haijyo/) { &error('希望する相手に禁止ワードがあるようです'); } } ↑これを追加してテストしてみましたがうまくいきましたよ?

master999
質問者

補足

レス有難うございます。 何回か試しましたが、やはり変わらないですね。 回答を下さった方法でも、私が試した方法でも、 多くなるとエラーを吐きます。 外部ファイルに記述する方法もドコかで見たような・・ これができないと公開できないなあ。

すると、全ての回答が全文表示されます。
  • calltella
  • ベストアンサー率49% (317/635)
回答No.1

>前回の質問の後に追加できないので、新たに投稿します。 >詳しい内容は前回の質問を見て下さい。 前回の質問のリンクぐらい貼ってください。 >最高でも18個が限界のようです。あとはエラーが出ます。 どんなエラーが出るか書いてもらえませんか? @haijyo = ( ,'殺' ,'死' ,'宣伝' ,'無修正'); ↑ここにどんどん追加すればいくらでも追加できそうですが 18個しか出来ないのならどこかに規制がかかっているのだと思いますので フリーの掲示板をお使いならどこのをお使いなのか教えてください。

すると、全ての回答が全文表示されます。

関連するQ&A