Javascriptを切って何も入力せずに登録ボタンを押したらそのまま登録前の確認ページへ進んでしまったりするんです。
これはいくらなんでもまずいだろうと(笑)
JavascriptがOnになっている人は画面遷移する前にJavascriptで止めるべきでしょうし、Offの人はサーバサイドでチェックをかけて止め、JavascriptをOnにしてもらうよう促すなどの配慮が必要だと思います。
で、今回はユーザ登録などの送信フォームでよく使うPHPでのチェック方法を紹介します。
以下の3つになります。
・メールアドレスチェック
・入力禁止文字チェック
・半角英数チェック
チェックの種類の中でもかなりよく使うチェックだと思います。
【メールアドレスチェック】
ネットの文献には色んなメルアドチェックがありますが、どうもいまいちスルーしてしまったりするものが多いです。
色々使ってきましたが今は以下のものを使っています。
なかなか調子がいいです。
// 正しい書式のメールアドレスの場合は、1 を返します
function valid_mail($email)
{
$rs = ereg("^[0-9,a-z,A-Z,_,\.,-]+@[0-9,A-Z,a-z][0-9,a-z,A-Z,_,\.,-]+\.(af|al|dz|as|ad|ao|ai|aq|ag|ar|am|aw|ac|au|at|az|bh|bd|bb|by|bj|bm|bt|bo|ba|bw|br|io|bn|bg|bf|bi|kh|cm|ca|cv|cf|td|gg|je|cl|cn|cx|cc|co|km|cg|cd|ck|cr|ci|hr|cu|cy|cz|dk|dj|dm|do|tp|ec|eg|sv|gq|er|ee|et|fk|fo|fj|fi|fr|gf|pf|tf|fx|ga|gm|ge|de|gh|gi|gd|gp|gu|gt|gn|gw|gy|ht|hm|hn|hk|hu|is|in|id|ir|iq|ie|im|il|it|jm|jo|kz|ke|ki|kp|kr|kw|kg|la|lv|lb|ls|lr|ly|li|lt|lu|mo|mk|mg|mw|my|mv|ml|mt|mh|mq|mr|mu|yt|mx|fm|md|mc|mn|ms|ma|mz|mm|na|nr|np|nl|an|nc|nz|ni|ne|ng|nu|nf|mp|no|om|pk|pw|pa|pg|py|pe|ph|pn|pl|pt|pr|qa|re|ro|ru|rw|kn|lc|vc|ws|sm|st|sa|sn|sc|sl|sg|sk|si|sb|so|za|gs|es|lk|sh|pm|sd|sr|sj|sz|se|ch|sy|tw|tj|tz|th|bs|ky|tg|tk|to|tt|tn|tr|tm|tc|tv|ug|ua|ae|uk|us|um|uy|uz|vu|va|ve|vn|vg|vi|wf|eh|ye|yu|zm|zw|com|net|org|gov|edu|int|mil|biz|info|name|pro|jp)$",$email);
return $rs;
}
【入力禁止文字チェック】
テキストボックスやテキストエリア等で入力されるとあまり好ましくない記号について警告を出します。
画面出力時のhtmlspecialcharsやDB登録時のaddslashes等を適切に行えばそれほど怖くはないのですが、万が一に備えて、本来入力されるはずのない記号等を最初から禁止してしまう時に使います。
例として「< > & " '」を禁止する場合です。
禁止文字があればfalse、なければtrueが返ります。
//禁止文字「< > & " '」
function NGCharCheck($str)
{
//スペースは対象外
if (!strlen($str))
{
return true;
}
if(ereg("[<>\"\'&]", $str))
{
return false;
}
else
{
return true;
}
}
【半角英数チェック】
電話番号やパスワードなどに使えます。
半角ならtrue、全角ならfalseが返ります。
function hanCheck($str)
{
//magic_quotes_gpcがONの時は、エスケープを解除する
if (get_magic_quotes_gpc())
{
$str = stripslashes($str);
}
if (strlen($str) == mb_strlen($str))
{
return true;
}
else
{
return false;
}
}
今回は代表的なチェックを紹介しました。
PHPのチェックだけでもOKですが、せっかくJavascriptがONになっている人にわざわざ画面遷移させるのはレスポンスの面でストレスを与えてしまうので、Javascriptでのチェックも入れてあげたほうが親切です。
タグ:PHP
自分の関数は、長ったらしくチェックし
てました・・・。@が一つでみたいな^^
あと、ソースが見やすく色分けされてま
すが、どんな方法を使ってるんでしょうか?
Javascriptは、window.openぐらいしか分からないので今度勉強してみます。
状況にもよりますが、半角全角はあらかじめ変換してあげてチェックしたりもしています。
メールチェックはいろんなやり方がありますもんね。
ソースの色分けはgoogle-code-prettifyというものを使っています。
↓こちらの記事で書いています。
http://webtech.seesaa.net/article/95303789.html
WordPressやMovable Typeを使われているのであれば、もっとよさそうなCodePressというのが使えるかもしれないです。
↓こちらの記事で書いています。
http://webtech.seesaa.net/article/95285823.html
今度使って見ます!
うわぁ〜〜専門的なブログですねww
ゆう♂も勉強しないとな♪
では、応援『ポチ』っと☆〜〜
自称
「コメントしにくいブログ(http://webtech.seesaa.net/article/99389282.html)」
にコメントありがとうございますw
また笑わせてもらいに行きますね^^
訪問&コメントありがとうございます。
こちらこそこれからもよろしくお願いします m(_ _)m