• ベストアンサー

入力文字数の制限方法。(指定文字数入力について)

先日に続けての質問ですが、よろしくお願いします。 「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
  • 回答数2
  • ありがとう数3

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

  • ベストアンサー
  • nontatta
  • ベストアンサー率34% (18/52)
回答No.2

こんにちは(^ー^) 再登場です。 スクリプトを見てみたところ、キーワードの変数名は$wordでした。 ので、cuty_girlさんが追加したスクリプトの$keyを$wordに変えればokです。 または if(length($word)<12){  &error("入力エラー","指定文字数で入力して下さい。"); } を if(length($word)!=12){  &error("入力エラー","指定文字数で入力して下さい。"); } として、入力文字数を12バイトぴったりに制限してもいいです。 タグのところで入力文字数を12文字に制限してあるので必要ありませんが。 なんだかストーカーのようですが(笑)、怖がらないで下さいね。 自分の勉強にもなるので発言させていただきました。 がんばってください。

cuty_girl
質問者

お礼

お返事が遅れてしまい、すみません。 nontattaさん、先日に引き続き回答して頂いてありがとうございます。 変数名が違っただけなのですね(^^; 変数は自分で勝手に決めちゃって、いいものだと思ってました。 この為に何時間も、悪戦苦闘してしまっていた自分が恥ずかしいです。。。 >なんだかストーカーのようですが(笑)、怖がらないで下さいね。 いえいえ、とんでもないです。 こんなに親切に回答して頂いたのに、ストーカーだとは思いませんよ。 適格にアドバイスを頂けたので、とても助かりました。 まだカスタマイズ中ですので、他にも問題が出てくるかもしれません。 成るべく自分で解決できるように、いろいろと調べてがんばってみますが、 どうしても分からない時は、またこちらで質問をさせて頂きますね。 貴重なお時間を割いて、アドバイスして頂きありがとうございました。 それでは、これからもよろしくお願いします。

その他の回答 (1)

  • tfp
  • ベストアンサー率37% (3/8)
回答No.1

Tor Worldというスクリプトを検索して落としてきて、調べて、問題箇所を見つけ、回答するまではできないですが。 if (length($keys) < 12) { print '12バイト未満'; } elsif (length($keys) <= 12) { print '12バイト以下'; } elsif (length($keys) == 12) { print '12バイトぴったり'; } elsif (length($keys) != 12) { print '12バイトぴったりじゃない'; } こういうことかな?

参考URL:
http://www.google.com/search?num=50&hl=ja&q=Perl+%93%FC%96%E5&btnG=Google+%8C%9F%8D%F5&lr=lang_ja
cuty_girl
質問者

お礼

お返事が遅くなってしまい、すみません。 入力文字数に合わせて、出力する言葉をかえることができるんですね。 他の箇所で是非使わせてもらうおうと思います。 入力制限をしたいところは、他にもいくつかあるので、とても参考になりました。 アドバイスをありがとうございました。

関連するQ&A

  • ログファイル(CSV形式)の特定の項目のみから検索させる方法。

    またまた質問ですが、よろしくお願いします。 「Tor World」というサイトの「メル友サーチ」というCGIを現在カスタマイズ中で使用したいと思っています。 メル友募集用に使うのでは無く、別の用途で使用するつもりです。 またちょっとした壁にぶちあたってしまい、自分でいろいろと試してみたのですが、どうしてもダメだったのでこちらに質問させて頂きました。 書込みがあった記事は、csvファイルで保存されるようになっています。(カンマ区切り) 検索する時にキーワード入力を使用するのですが、キーワード入力による検索する場合に、投稿者の名前のみから抽出するにはどうしたら良いでしょうか? index.cgiの300行目あたりに検索処理スクリプトが記述されています。 投稿者の名前の変数名は$rightです。 「該当データの検出処理」と言うところを、いろいろと触ってみたのですが、どうしても投稿者のみから検索させることはできませんでした。 アドバイスを、よろしくお願い致します。 「Tor World」は、検索ですぐに分かると思います。(個人サイトへの直リンクはダメみたいなので、お手数ですが検索をお願いします)

    • ベストアンサー
    • CGI
  • cgiによる文字入力数の制限について

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

    • ベストアンサー
    • CGI
  • 入力文字数のチェック

    CGIを利用して、入力されたコードからある項目を検索させるページを作っています。 入力させる文字は数字8桁に制限したいのですが、下記の内容ですと、8桁以下の入力でエラーを出すことはできますがそのままCGIの処理に流れていってしまうのです。 これを、8桁以下だったらエラーを出してそこでストップさせるようにしたいのです。 かれこれ3日悩んでいます。。。よろしくお願いいたします。 ========================================================= <HTML> <HEAD> <TITLE>データベース</TITLE> <script language="javascript" type="text/javascript"> <!-- var MAXLENGTH = 8; //入力許容最小文字数 function tareachk(frm){ var tmp = frm.HANDLE.value; var len = tmp.length; if(len < MAXLENGTH){alert("現在のコードの"+MAXLENGTH+"桁を入力してください");} else {frm.submit();} } // --> </script> </HEAD> <BODY bgcolor="#ffffff"> <img SRC="logon_l2.gif" height=42 width=685> <br> <form method=post action="/cgi-bin/search.cgi"> コード <input type=text name="HANDLE" size="10"> <input type=submit value="検索" onClick="tareachk(this.form);"> </form> </BODY> </HTML>

  • エクセルで、入力文字数を指定したいのですが。

    エクセルで、入力する文字数を指定できませんか。関数で、文字数を数える関数はないでしょうか。

  • 入力制限文字数に関するタグについて

    入力制限文字数に関するタグについて 1) <TEXTAREA>タグを利用した場合の入力文字制限数を指定できるステップを教えてください。 同時に、制限数を超えた場合は、「入力文字が***文字を超えています」等のメッセージも出したいのですが・・・ 2) 1)以外のタグで同じ効果を得られるものをご存知でしたら、合わせてお教えください。

  • 固定の文字数

    お世話になっております。 複数(仮に6つ)個のファイルがあり、その各ファイルには1~10行まで文字が書かれています。書かれている文字はいつも固定の文字数です。 例えば、その固定の文字数を超えた場合にスクリプトから「文字数を超えているので、[超えた文字の行数 または 文字の超えた行の箇所をエラーとして出力]を確認して下さい。」というスクリプトを作成したいのです。 上記のスクリプトを作成する事は可能でしょうか?どなたかご存知の方がおられましたら、ご教授の程、宜しく御願い致します。

  • 1ページの行数、文字数が指定通りに揃いません・・(Word2000)。

    はじめまして。 Word2000を用い、論文原稿を作成中の者です。 この論文には、厄介なことに・・ 「本文は1ページ22字×47行横2段組とする。 要旨・キーワードは42字横1段とする。」 との投稿規定がありまして・・。 取り敢えず、要旨とキーワードの部分を選択し、 「ページ設定」で「文字数と行数を指定する」を選び、 文字数を42字、行数47行に設定してみるのですが。 実際の文章は、 その行によって文字数が44桁だったり46桁だったりと ばらばらになってしまうのです。 また、本文の行数についても、ページによって 49行、46行のところなど多様であります。 行数が不揃いなのは、 本文の途中にグラフ数個が挿入されているからなのでしょうか・・? 今は、適当に40字に文字数を設定していますが、 やはり、41~44桁とばらつきがあります。 「書式」→「段組み」からの字数指定も試みたのですが、 結果は同じでした。 行数指定も、ページによって48行にしたり50行にしたりという調子です。 また、過去ログに書かれていました、 > 文字体裁タブをクリックし、 >  ・カーニング  半角英数のみ >  ・文字間隔   間隔を詰めない >  ・禁則文字   指定 >    行頭禁則文字 すべて消去 >    行末禁則文字 すべて消去 > とすれば、指定した文字数で必ず次の行に送られるようになります。 こちらにも挑戦したのですが・・ 未だ頑強に指定と合わない部分がありまして・・・。 他の部分で、何か間違った指定をしているのかもしれないのですが。 どうしたら良いものかと途方に暮れております。 つきましては、何か良い解決策を教えて頂けると有難いです。 お手数お掛け致しますが、どうぞ宜しくお願いいたします。

  • ワードで入力できる文字数を制限する方法

    質問シートを作成中ですが、回答を入力すると、フォーマットが壊れてしまいます。 入力できる文字数を制限し固定する方法を教えてください。 パソコン初心者です。 いろいろ検索しましたが、よい方法が見つかりません。 よろしくお願いします。

  • 【文字数調整】 指定文字数までスペースを付与させる方法について

    お世話になっています。 【文字数調整】 指定文字数までスペースを付与させる方法はないものでしょうか? (ソフトはWord、Excel、サクラエディタを使用しています。) 文字数:50 として指定されている文字枠があったとして 5文字入力文字があれば、残りの45文字をスペースを入れたいのですがなにか良い方法はありませんでしょうか。 「あああああ」  ↓ 「あああああ                                             」 という風な感じでスペースを追加(文字数調整)したいのです。 「入力文字が指定文字数に足りない場合、スペースを挿入する方法はありませんでしょうか。

  • Word1行の文字数指定

    Word2013で 1行の文字数指定 および 1ページの行数指定を設定したのですが 実際に表示されるのは 設定より少ない文字数(設定37文字、実際33文字) 設定より少ない行数(設定26行、実際17行) になってしまいます。 設定通りに表示するにはどのようにすればよろしいでしょうか どうぞよろしくお願いいたします。

専門家に質問してみよう