• ベストアンサー

英数字の文字列に対してエラーをだしたい

phpを使って簡易な掲示板を運営しています。 先日よりやたらと海外からの書き込みがあります。 書き込まれた際に英数字のみで書かれた内容にはエラーを出すような便利な関数はないでしょうか? よろしくお願い致します。

  • melll
  • お礼率50% (114/227)
  • PHP
  • 回答数2
  • ありがとう数1

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

  • ベストアンサー
  • oskosn
  • ベストアンサー率100% (3/3)
回答No.2

こんな方法もあります。 if(mb_detect_encoding($body,"ASCII,SJIS")=="SJIS"){ #日本語有りの処理 }else{ #ASCIIの処理 } 自前の掲示板では投稿される前に投稿フォーム自体を出さない方法を併用しています。(投稿フォームがPHPでなければ出来ませんが…) if(!preg_match("/ja/i",$_SERVER[HTTP_ACCEPT_LANGUAGE],$dum)){ # 日本語のブラウザでアクセスしてくださいとの表示 }else{ # フォーム表示 }

その他の回答 (1)

回答No.1

とりあえずは・・・ if (eregi ("{a-zA-z0-9,./;:]@[-^!\"#$%&'()=~|`{*}?_><}", $data)) { ~英数字のみの時の処理~ } else { ~英数字以外が含まれていたときの処理~ } と言ったところでしょう。 しかしこれでは英語以外の文字(例えば英語以外のヨーロッパ言語文字でも良い)を 使われただけでクリアされてしまいますのでどれくらい効果があるかは分かりません。

melll
質問者

お礼

ありがとうございます。 これを逆に日本語が含まれている場合の処理などは可能なのでしょうか? 大手などの掲示板はどのように対処しているのですかね?・・・

関連するQ&A

  • 文字列から英数字の判別

    PHP で質問です word1変数内に英数字がある場合以外はテキスト(変数名kana1) への入力必須をのエラーをだしたいのですが、うまくいきません。 基本動くのですが、カタカナのチ以降の文字を入れると通ってしまいます。 何かいけないでしょうか? if ($kana1=="") { if(preg_match("/[a-z0-9]+/",$word1)) {}else{ echo "<h2 class="subtitle">ふりがなを入力してください。</h2><br />"; $err_flg = "1"; } }

    • ベストアンサー
    • PHP
  • 全角文字と半角英数字の文字数をそれぞれ別に計上したい

    エクセルのワークシート上で、そのシートにある全角文字と半角英数字の文字数をそれぞれ別に計上したいのですがそんな便利な関数があれば教えて下さい。

  • ある文字を入れるとエラーB203が出ます

    掲示板に書き込みをする際 漢字の「くら」(ぞう)の字を入れるとエラーB203が出て投稿できません。原因はなんなんでしょうか?

  • 迷惑な書き込みを制限する方法

    初心者です。よろしくお願い致します。 簡易な掲示板を趣味で運営しているのですが、スパム書き込みが多く困っています。 内容は、出会い系関連で文章に必ず「メールください!」などと書かれています。 そこで、投稿された文字列の中にメールアドレスが含まれている内容にはエラーを出せれば自動で弾いてくれると、初心者ながら考えたのですが、これらをPHPで行うのは可能でしょうか。 どのように書いてよいのか検討もつきません。 ご存知の方がいましたら是非ご教授お願い致します。

    • ベストアンサー
    • PHP
  • 複数の文字列をファイルに書き込むには

    過去に同じような質問もありましたが、いろいろ検索してこちらの過去ログを拝見しても解決できなかったので質問させてください。 掲示板で確認画面を作り確認して書込みをさせる掲示板を作っています。 掲示板にタイトルと名前とメッセージを同時に書き込みたいのですが、同時に書き込む方法がわかりません。 下がソースです。(エラーが出る状態です) <?php $title = $_REQUEST["title"]; $title = $title."\n"; $namae = $_REQUEST["namae"]; $namae = $namae."\n"; $body = $_REQUEST["body"]; $body = $body."\n"; ?><html> <head> <title>Sample01</title> </head> <body> <?php $fp = fopen("../php/test1.txt","a"); fwritefwrite($fp,$title,$namae,$body);//ここを変えてみました fclose($fp); echo "書込み確認画面", "<a href=\"./form.php\"></a>"; ?> わかる方おりましたらご教授お願いします。

    • ベストアンサー
    • PHP
  • 数字を8文字の英数字にハッシュ化

    例えば会員制のサイトの会員数が10000で ユーザーIDが1~10000まであるとすると それぞれのIDを8文字の英数字に暗号化したくなった場合、どの関数を使用すれば良いでしょうか? md5だと復号化できないし長すぎるので、 復号化でき文字数も指定できる方法を、ご教示いただけると幸いです。 宜しくお願い致します。

    • ベストアンサー
    • PHP
  • 半角英数字…

    apeskinを作成しています。 テスト書き込みをしたのですが、改行ナシで半角英数字のみ書き込むと、 指定した幅を拡張して表示してしまいます。 何か良い方法等、ないでしょうか? 作成はテーブルタグは一切使わず、CSSで作成しています。 よろしくお願い致します。

    • ベストアンサー
    • CSS
  • 掲示板への書き込みエラー

    色々なHPで掲示板等へ書き込みをしようと思っても エラーメッセージがでて書き込めない場合がよくあります。 (ここへは書き込みできるけど) 「HTTPで送信されていない」「不正投稿」「アクセスエラー」 等々、HPによってエラーの返事は色々ですが、 本当に不正投稿や、記入漏れ、半角・全角入力等のミスはありません。 書き込みする掲示板は、ごく普通の友人のHPの掲示板や インフォシークの掲示板、ヤフーの掲示板、医療質問の掲示板等、 色々ですが怪しい物は一つも有りません。 初心者なので私の現在の環境を伝えようと思っても 何を伝えたらいいのかさえ分からないのですが、 先日新しくマイクロソフトのHPからIE6.0を ダウンロードしましたがやはり投稿できません。 シマンテックのアンチウイルスを使っています。 現在海外在住で、マンションのインターネットLANを使用していて プロバイダーも海外の物を利用しています。 何かアドバイスをお願いします。

  • 高機能な掲示板について教えてください。

    知り合いのHPに掲示板を設置する事をお願いされたのですが 以前使っていた掲示板はフリーのものでよく英語の広告(?)や 出会い系サイト等の書き込みがあって困っていたみたいです。 なので今回はそういうものがなるべく書き込まれない掲示板にしたいとの事なんですが 掲示板に書き込みをする際に画像で英数字などが表示されてそれを正確に打ち込まないと 書き込みが受理されない掲示板とかってありますよね。 それだと大分違うのではと思ってます。 そういう掲示板を借りれる…または買い取れる掲示板を知りませんか? よろしくお願いします。

  • 文字列の置き換え

    はじめまして。正規表現とPHPで下記のような置き換えをしたいのですが、 どうしたら良いのでしょうか。 <a href="http://www.homepage.com/index.php?no=***">***</a> ↓置き換え <a href="javascript:Open('http://www.homepage.com/index.php?no=***')">***</a> ※***、***は毎回違うものが入りますが、その他の部分は全く同じです。 ※***は、半角英数字・「-」で構成されています。 文字数は色々です。 ※***は、かな・漢字などさまざまで、文字数も決まっていません。 よろしくお願い致します。

    • ベストアンサー
    • PHP

専門家に質問してみよう