« SPAMサイトをやっつけよう! | トップページ | SPAMサイト撃沈? »

2004/12/03

ColdFusionでフォームの作成 5/6

前回は半角スペースが入力されていた場合の対応を説明しました。
今回はTrim()では処理できない全角スペースが入力されていた場合の対応を考えてみたいと思います。

多分、いろいろなアプローチが考えられると思うのですが、前回までに作成した<CFIF IsDefined("FORM.myName") AND trim(FORM.myName) NEQ "">に最小限の変更するだけで済む様に考えてみたいと思います。
Trim()の処理は変数内の文字列の前後の半角スペースを取り除き、結果の変数が""だった場合にFalseを返すというものでしたので、一旦、変数の中の全角スペースを半角にしてTrim()に渡したら、今までののコードを生かすことができます。

それには、Replace()関数を使います。ColdFusionでは、関数の引数の中に関数を入れることができるので、FORM.myNameをReplace(FORM.myName, " ", " ","all")に置き換えます。
すると、Trim(Replace(FORM.myName, " ", " ","all"))になります。
これで、Trim()で半角スペースを取り除く前に、全角スペースを半角スペースに変換することができるようになりました。

現在のCFMはこうなっています。

<CFIF IsDefined("FORM.myName") AND Trim(Replace(FORM.myName, " ", " ","all")) NEQ "">
  <CFOUTPUT>#FORM.myName#</CFOUTPUT>
<CFELSE>
  <CFFORM action="#CGI.SCRIPT_NAME#" method="post">
  <CFINPUT name="myName" type="text" size="20" maxlength="30" required="yes" message="名前を入力してください">
  <INPUT type="submit" value="送信">
  </CFFORM>
</CFIF>

【予告】
次回は、「クロスサイトスクリプティング」を考えます。

◇この記事が参考になりましたらこちらをクリック ≫ 人気blogランキング

◇「『うぇっぶ』のはなし」へのコメント募集中 ≫ ビジネスブログランキング100選

|
|

« SPAMサイトをやっつけよう! | トップページ | SPAMサイト撃沈? »

ColdFusion」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/26804/2141173

この記事へのトラックバック一覧です: ColdFusionでフォームの作成 5/6:

« SPAMサイトをやっつけよう! | トップページ | SPAMサイト撃沈? »