掲示板を作ってみる5



今回更新した点
コメントの複数同時削除。
日付でコメントを検索。
ログインパスワードのセキュリティを強化。


とりあえずこんな感じ


管理者名とパスワードはtestです。
コメントの複数選択はCtrlキーかShiftキーを押しながらクリックしてください。


解説

  • コメントの複数削除


データグリッドはデフォルトのままだと複数の項目を同時に選択することはできないので


allowMultipleSelection="true">


allowMultipleSelectionをtrueにすることで複数選択できるようになります。


選択された項目のデータは


BBS_data.selectedItems


で参照できます。ちなみにArray型です。


それでこのデータをPHP側に渡して検索したいわけですが、

delete_s.request.data = BBS_data.selectedItems


こんな風に書いてもPHP側では配列の最後の要素一つしか取得できませんでしたので、
配列の要素を『,』区切りの文字列に直して送ることにしました。

var ary:Array = BBS_data.selectedItems;
            		var id_str:String = "";
            		
            		//選択されたidを『,』区切りの文字列に直す
            		for(var i:uint = 0; i < ary.length; i++){
            			id_str += ary[i].id;
            			if(i < ary.length -1)
            				id_str += ",";
            		}
            		delete_s.request.id = id_str;
            		delete_s.send();


PHP側の処理

<?php

        $id = $_POST["id"];

	if($id == ""){
		echo "<result><success>false</success>" .
			"<info>parameter is empty</info></result>";
		exit;
	}

	$ary = split(',', $id);
	foreach($ary as $e){
		if(!is_numeric($e)){
			echo "<result><success>false</success>" .
			"<info>parameter is not numeric</info></result>";
			exit;
		}
	}

        //SQL文の設定
	$sql = sprintf("DELETE FROM bbs_select WHERE id IN(%s);", mysql_real_escape_string($id));

        $result = mysql_query($sql);

?>


日付の検索は特に新しいことはしていないのでソース参照


セキュリティの強化に関してはこちらで紹介した方法を実際にやりました。


ソース