cgiによる文字入力数の制限について

このQ&Aのポイント
  • perl初心者の質問:フリーの掲示板cgiを使用していますが、IDネームの文字数制限を加えたいです。
  • 質問:cgiのIDネームの文字数制限を加える方法を教えてください。
  • perl cgiを使用している際に、IDネームの文字数に制限を加える方法について教えてください。
回答を見る
  • ベストアンサー

cgiによる文字入力数の制限について

perlについては素人な者ですが、私の質問をお願いします。 フリーの掲示板cgiを使っていますが、IDネームを決定する際に入力できる文字数の制限がありません。 「未入力」と「全角」を含む場合は、以下の部分でエラーを出せますが、 if ($in{'name'} eq "" || $in{'name'} =~ /[^a-zA-Z0-9]/) { &error("IDネームを確認してください。");} この箇所に書き加えて、4文字から10文字以内といった文字入力数の制限を加えるにはどうしたらよいのでしょうか? cgiは携帯用なのでJavaScriptは使わない方法で何かあればお願い致します。

  • CGI
  • 回答数2
  • ありがとう数1

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

  • ベストアンサー
  • shimix
  • ベストアンサー率54% (865/1590)
回答No.2

あ、すみません。数値比較だったですね(汗   if (length($in{'name'}) < 4 || length($in{'name'}) > 10) { &error("4文字以上10文字以内で入力してください");} でいいと思います。

nyarome44
質問者

お礼

誠に有難うございます。 これで問題となっていたIDネームの文字入力数を制限することができました。 心からお礼申し上げます。

その他の回答 (1)

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.1

length()でチェックすればいいのでは?   http://perl.misty.ne.jp/function01/length.html   if (length($in{'name'}) lt 4 || length($in{'name'}) gt 10) { &error("4文字以上10文字以内で入力してください");} #Perlは滅多に書かないのでtypoがあったらごめんなさい(汗

nyarome44
質問者

補足

早速の回答ありがとうございます。 しかし、実際に書き加えて試したところ4~10文字以内であってもエラー?が出てしまいました。

関連するQ&A

  • EXCEL入力規則で文字数制限

    EXCEL2002です。 A列に入力規則をかけ、全角20文字、半角40文字以内にしたいと思っています。 「エクセル技道場→入力規則→全角5文字、半角10文字」を参考にさせていただき、以下の式で入力規則のユーザー設定を行いました。 =AND(ISTEXT(A1),LENB(A1)<=40) この場合、最初の文字が半角の場合に制限数以下でもエラーメッセージが出てしまいます。 最初の文字が全角でも半角でも制限数以下であればエラーメッセージが出ないようにする方法はありますか? よろしくお願いします。 http://www2.odn.ne.jp/excel/waza/validation.html#SEC10

  • FOMAの入力文字数制限。

    現在SH900isを使用中なのですが、そろそろ新しい携帯に変えたいと思っております。 そこで質問なのですが…。 SH900isは、掲示板等に書き込む際に入力できる文字数に制限がありました。 (確か、全角256文字) 901以降の機種でも、上記のような文字入力数に制限がある機種はあるのでしょうか? 詳しい方がいらっしゃいましたら、是非ご回答お願いします。

  • エクセル2007で文字入力数の制限について質問です

    エクセル2007で文字入力数の制限について質問です 全角と半角が混在した文章で全角は1文字、半角は0.5文字で計算して 合計で20文字以内とか設定できませんか? 「データの入力規則」では出来なそうなので。。。 また、20.5文字以内という設定は可能ですか? 簡単な関数でせいげんできれば助かります ご回答よろしくお願いします

  • フォームの<TEXTAREA>で文字数制限する方法はありますか?

    こんにちは。フォームの<TEXTAREA>で入力文字数を制限をする方法を知りたいのですが、解る方がいらっしゃいましたら教えてください。 MAXLENGTHなどは使用できないようでしたので、Javascriptでの制限方法などがあるのかなと思い書き込みさせていただきました。具体的には全角150文字前後に制限したいと思っております。(※前後全角10文字くらいは誤差があってもかまいません。) サーバーサイドではなくクライアントサイドで動く仕様のものが良いので、こちらに書き込みさせていただきました。よろしくお願い致します。

  • CGI Perlでの認証について

    CGIにてログイン認証の処理を使用してみたく勉強がてら Perlにて作成しているのですが、どうもうまくいかない ので質問させてもらいます。 ID・パスワード保存用ファイルfile.datにあらかじめ 100<>p34z7 500<>332bdz といった感じで入力してまして、 ログインボタンを押したときに &login_chk($post{'id'},$post{'pwd'}); (URIデコード処理して$post{'id'},$post{'pwd'}を取得します) を実行して下記サブルーチンを呼び出します。 sub login_chk { my ($in_id, $in_pass) = @_; my ($id, $pass); my $data; if (!open (IN, "./file.dat")) { &Error("ファイルが開けません"); } while ($data = <IN>) { ($id, $pass) = split(/<>/, $data); if ($in_id eq $id){ last; } } close(IN); unless ($in_pass eq $pass) { &Error("正しいID・パスワードを入力してください"); } } ※現状ファイルロックの処理はしてません。  パスワードの暗号化もしてません。 で、IDに100、パスワードにp34z7と入力してログインしようとするのですが 「正しいID・パスワードを入力してください」とエラーが出てきます。 当然500のときも同じくエラーでした。 どこが問題なのでしょうか?昨日から考えてずっとわからないのでご回答よろしくお願いします。

    • ベストアンサー
    • Perl
  • 入力文字数の制限方法。(指定文字数入力について)

    先日に続けての質問ですが、よろしくお願いします。 「Tor World」というサイトの「メル友サーチ」というCGIを使用したいと思っています。 メル友募集用に使うのでは無く、別の用途で使用しようと思っており、それに合わせてがんばってカスタマイズしました。 そして、最後に大きな壁にあたってしまい、どうにもならなくなってしまったので、こちらで質問をさせてもらおうと思いました。 大きな壁と言うのは、登録情報を検索する際にキーワード検索を使用するのですが、このキーワードを指定文字数で入力して検索できるようにしたいのです。 「index.cgi」の299行あたりから検索処理のスクリプトが記述されています。 「sub search {」のすぐ下に下記のスクリプトを記述しました。 if (length($keys) <12) { &error("入力エラー","指定文字数で入力して下さい。"); } 次に2120行目からの、検索フォームのキーワード入力タグ(2187行目)を次のように変更しました。 <input type=text name="word" value="$keys"size="12" maxlength="12"> 以上2つの部分を変更して、12文字より少ないとエラーを表示させ、入力の方は12文字までの制限にしました。 これで、半角12文字の入力指定にできたと思ったのですが、なぜか「指定文字数~」のエラーが出てしまいます。 いろいろと試してみましたが、どうしてもわかりませんでした。 アドバイスをよろしくお願い致します。 「Tor World」は、検索ですぐに分かると思います。(個人サイトへの直リンクはダメみたいなので、お手数ですが検索をお願いします)

    • ベストアンサー
    • CGI
  • テキストBOXの入力制限について

    テキストBOXを下記のように設定したとします。 <input type="text"name="***" maxlength="30"> この場合は、全角・半角関係なく文字数を30文字入力することができますよね? 今回、私がやりたいことは、バイト数の制限をやりたいんです。 例えばバイト数を30バイトにした場合は、 全角では15文字しか入力できなくて 半角では30文字入力制限をする方法を探しています。 何かよい方法はないものでしょうか???

  • 入力文字制限の方法

    質問なんですが・・・ 氏名<input type="text" name="name" value="" id="name"> というテキストボックスがあるんですが、これに全角ひらがな(文字)以外で入力して送信された場合に全角で入力するよう、alertを返す処理をしたいのですが、文字指定の処理の記述などを教えていただけないでしょうか?正規表現などがあったのですがよくわからなかったので、お願いします><

  • textareaで入力できる文字数を制限したい。

    フォームについて質問させてください。 テキストフィールドで、シングルラインならば入力できる文字の最大数を maxlength で指定できるのですが、マルチラインの場合、同様に最大数を指定することはできないでしょうか? わかるかた、なにとぞご教授ください。 ■シングルラインでの文字数制限 <input name="thread_title" type="text" id="thread_title" size="80" maxlength="10"> ■マルチライン <textarea name="text" cols="64" rows="10" id="news_text" maxlength="10"></textarea> ↑上記のようにmaxlength入れても駄目でした。。。涙

    • ベストアンサー
    • HTML
  • テキストエリア文字制限について

    テキストエリア文字制限について 失礼します。 javascript初心者です。 複数のテキストエリアの文字制限を行いたく 苦戦しております。 いろいろと検索してみましたが・・・ 2日ほど悩んでおります。 AとBでエラーが出た場合はCGIに流れず入力フォームに戻るのですが Bでエラーが発生しない場合CGIに流れてしまいます。 ですの文字数制限をしても結局CGIに流れてしまうのですが どのように記述すればよろしいでしょうか?? なんとか・・・ご教授いただければ幸いです。 よろしくお願いいたします。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <meta http-equiv="Content-Style-Type" content="text/css"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <title>入力文字数の制限</title> <script language="javascript" type="text/javascript"> <!-- var MAXLENGTH = 10; //入力許容最大文字数 function tareachk(frm){ var tmp = frm.vin1.value; var len = tmp.length; if(len > MAXLENGTH){alert("A入力可能な文字数は"+MAXLENGTH+"文字までです");} var tmp = frm.vin2.value; var len = tmp.length; if(len > MAXLENGTH){alert("B入力可能な文字数は"+MAXLENGTH+"文字までです");} else{frm.submit();} } // --> </script> </head> <body> <form action="ccccc.cgi" method="post"> <textarea name="vin1" rows="5" cols="30">10文字まで入力可能</textarea><br> <textarea name="vin2" rows="5" cols="30">10文字まで入力可能</textarea><br> <input type="button" value="GO" onclick="tareachk(this.form);"> </form> </body> </html>

専門家に質問してみよう