サーバー側でのエラーチェック

  空白文字のチェック



  
<?
# **********************************************************
# 関数定義
# **********************************************************
require_once( "function.php" );

$Sel[$_POST['kubun']] = "selected";

$_POST['MainKey'] = trim( $_POST['MainKey'] );
if ( $_POST['MainKey'] == '' ) {
	SetErrMessage( '空白文字が入力されました' );
}

require_once( "pagestart.php" );
?>

<FORM
	name=frmMain
	method=post
	action=<?= $_SERVER['SCRIPT_NAME'] ?>
	onSubmit='return CheckData();'
>

	<SELECT name=kubun>
	<OPTION value=1 <?= $Sel[1] ?>>登録
	<OPTION value=2 <?= $Sel[2] ?>>修正
	<OPTION value=3 <?= $Sel[3] ?>>削除
	</SELECT>

	<BR>
	<INPUT name=MainKey type=text>
	<INPUT name=SendButton type=submit value="送信">
	<BR>
	<?= $ErrMessage ?>

</FORM>

<?
require_once( "pageend.php" );
# **********************************************************
# デバッグ用表示
# **********************************************************
DispPost();
?>

  




  サーバ用のエラーメッセージエリアの記述



エラーメッセージを表示するわけですから、HTML上 で表示したい位置をまず決めて、その位置に以下のような PHP による記述を行います。

  
<?= $ErrMessage ?>
  

これは、PHP や、Microsoft の ASP での記述の最大の特徴でもある、「指定位置でのサーバ文字列の埋め込み」の手法です。$ErrMessage は、PHP の変数であり、中身が空であれば、なにも表示されませんが、なにかがセットされておればそれがそのままブラウザで表示されます。

もし、赤い文字を太字で「空白文字が入力されました」と表示したければ以下のようにすれば良い事になります。

  
$ErrMessage = '<SPAN style=\'color:red;font-weight:bold\'>空白文字が入力されました</SPAN>';
  





  空白文字が入力された時のチェック

クライアントのチェックで、空文字が入力された時のチェックは行いましたが、1つ以上の空白文字のもが入力された時はサーバに送信されてしまいます。そこで、それに関してはサーバでチェックしようと思います。

この場合使用する関数は、trim です。

trim -- 文字列の先頭および末尾にあるホワイトスペースを取り除く

string trim ( string str [, string charlist])

注意: オプションのcharlistパラメータは、PHP 4.1.0で追加されました。

この関数は文字列の最初および最後から空白文字を取り除き、 取り除かれた文字列を返します





  エラーメッセージのセットを関数化

function.php に追加
  
# **********************************************************
# エラーメッセージのセット
# **********************************************************
function SetErrMessage( $Message ) {

	global $ErrMessage;

	$ErrMessage = '<SPAN style=\'color:red;font-weight:bold\'>';
	$ErrMessage .= $Message;
	$ErrMessage .= '</SPAN>';

}
  

PHP で関数を作成する場合に最も注意するべき事は、グローバル関数を参照する場合は必ず宣言する必要があるという事です。これは、他の言語と逆なので注意して下さい。ただ、使用するグローバル変数が多くなって行くと宣言を忘れたりする事が多くなります。ですからそれを避ける為に以下のように記述すると良いでしょう

  
function SetErrMessage( $Message ) {

	$GLOBALS['ErrMessage'] = '<SPAN style=\'color:red;font-weight:bold\'>';
	$GLOBALS['ErrMessage'] .= $Message;
	$GLOBALS['ErrMessage'] .= '</SPAN>';

}
  










  infoboard   管理者用   
このエントリーをはてなブックマークに追加





フリーフォントWEBサービス
SQLの窓WEBサービス

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ