前提・実現したいこと
こんにちわ、今回初めてのサイト利用となります。
プログラミングも初心者であるため少しずれた質問になるかもしれませんが、その際はご指摘いただけますと幸いです。
現在サイトにて1~4桁の番号を入力出来る入力フォームを作ろうとしています。
その際maxlengthを利用して4桁までしか入力できないよう制限を掛けているのですが、デバッグ中に本来発生するはずのエラーが特定の条件で発生せず困っております。
前提として
拡張子は.tpl。
最大4桁のため当該項目はmaxlength=4で設定。
半角文字のみの入力を受け付ける。(全角を入力するとエラーを出力)
SQLDBから情報を取得することもある。
SQLでの当該カラムは「varchar(255)」。
使用ブラウザはIE
以下にそのソースコードと問題、および実施観点を載せます。
どうかご助力いただけますようお願い申し上げます。
発生している問題・エラーメッセージ
maxlengthを指定しているためサイトの入力フォームから5桁以上を入力することはできませんが、DBから直接データを変更し5桁以上を入力すると、サイト更新時入力フォームにDBから入力した5桁以上のデータが表示されます。
この状態で更新ボタンを押すと本来であれば「〇〇文字以内でテキストを入力してください。」とエラーが表示され更新不可になるのですがそのまま更新が出来て、DBにも5桁以上で登録されたままになります。
全角文字の項目で同じことを試したところ上記のエラーが発生し更新不可でした。
半角と全角で何か処理の違いがあるのでしょうか。調べても有力な情報が見つからなかったため教えていただきたいです。
また、今回の質問は何故上記の条件下でエラーが発生しないのかという観点のみでの回答をお待ちしております。
該当のソースコード
html
1… 2<th colspon="2" width="200">番号</th> 3<td> 4 <input type="text" id="hoge_no" name="hoge_no" size="5" maxlength="4" value="{hoge_no|htmlspecialchars}" class="hoge"><span class="str_black"></span> 5</td> 6…
試したこと
DB入力=111122 maxlength="4"
①入力フォームに触らずそのまま更新
→結果:エラーが発生せず更新可
②入力フォームから「111122」を「11112」に変更して更新。(deleteで1文字削除)
→結果:「4文字以内でテキストを入力してください。」のエラー表示。更新不可。
③minlengthを設定して上記のテストをおこなう。
→結果:同様の結果が得られる。
回答2件
あなたの回答
tips
プレビュー