9.文字数制限・エラーメッセージ

前項で、HTMLのフォームから入力された「名前」と「暗証番号」が送信された場合
デコード処理され、HTML上で表示できる様になりました。

さて~っ!
今回は、「名前」と「暗証番号」の入力フォームに、入力された値の送信時に
文字数制限を付けたいと思いますです。
オプションみたいな~・・・みたいなぁ~?だしぃ~?・・・( ̄〇 ̄)あ( ̄o ̄)ほ( ̄。 ̄)

◎前項までのスクリプト

:↓サブルーチン「sub decode」の実際のソースは、cgibessou_page008.txt のスクリプトに置き換えて下さい。
    ここでは、HTMLのTEXTAREAタグを使用して表示してるので、実際のスクリプトとは異なります。)

:↑サブルーチン「sub decode」の実際のソースは、cgibessou_page008.txt のスクリプトに置き換えて下さい。
    ここでは、HTMLのTEXTAREAタグを使用して表示してるので、実際のスクリプトとは異なります。)


文字数制限もCGIの部屋を参照なんだけど
今回は名前と暗証番号を別々に文字数制限したいんだよな~。

:↑サブルーチン「sub decode」の実際のソースは、cgibessou_page008.txt のスクリプトに置き換えて下さい。
    ここでは、HTMLのTEXTAREAタグを使用して表示してるので、実際のスクリプトとは異なります。)

名前      <input type = "text" name = "name"maxlength = 8> ← バイト制限では無く、文字制限 8
暗証番号   <input type = "password" name = "pass"maxlength = 10> ← バイト制限では無く、文字制限 10
で、フォームの入力文字数制限をしてみました。

maxlength ←フォームの入力画面の文字数制限タグ

これでは完璧?では無いらしく、CGI側でも文字数制限もした方が安全らしいです。^^;
って事で、CGIのスクリプトに

if($buffer_length >= 50){exit;}

と加えてお試しで、名前と暗証番号を空白のまま送信してみたところ・・・

$buffer_length : 11
$buffer : name=&pass=

name=&pass= が、11バイトって解釈で、プラス
名前の制限が8文字、暗証番号の制限が10文字で、合計約46バイト位。

if($buffer_length >= 57){exit;} → exit
if($buffer_length >= 58){exit;} → 正常表示

半角英数文字などは、約1バイト
全角文字は、約2バイト
って事ですかいな?^^

今のところCGI側の文字数制限は 60 に設定してみました。

ムンださBBSの ini.cgi を持ち込んで来てカスタマイズして
require './ini.cgi'; で呼び出して エラーメッセージ表示をできる様にしたっす。

現在のソース : cgibessou_page009.txt
ini.cgi : ini.txt


戻る