コメント |
@DIV
CREATE TABLE `board` (
`board_id` bigint not null auto_increment,
`board_title` varchar(50),
`board_name` varchar(20),
`board_pass` varchar(40),
`board_body` mediumtext,
`board_create` datetime,
`board_update` datetime,
`board_delflg` varchar(1),
PRIMARY KEY (`board_id`)
)
@END
[[実装済み]]
@DIV
◎ 同一投稿の禁止
◎ 削除時は、`board_delflg` に 'D' をセットする
@END
[[要修正バグ]]
@DIV
◎ 変更時エラーが出た場合、元の状態に復帰していない
@END
[[未実装]]
@DIV
◎ 名前が未入力の場合の処理
◎ 名前とパスワードをクッキーで復帰
◎ 入力された HTML が反映されないようにする
◎ 連続投稿の禁止( 対アプリ投稿 )
◎ タイトルおよび本文に対する禁止文字列フィルタ
◎ 投稿参照機能
◎ ページ処理
◎ 検索処理
◎ 添付ファイル機能( 含ファイルアップロード )
◎ URL リンク化( 正規表現 )
◎ テキストエリア TAB 機能実装
@END
[[連続投稿禁止用テーブル]]
@DIV
CREATE TABLE `access` (
`access_ip` varchar(15),
`access_time` int,
PRIMARY KEY (`access_ip`)
)
@END
[[連続投稿禁止処理]]
@DIV
if ( $_POST['send'] != '' ) {
$err_flg = false;
$Query = "select * from board ";
$Query .= " where board_body = '{$_POST['body']}'";
$Query .= " and board_delflg is NULL";
$Column = $SQL->QueryEx( $Query );
if ( $Column ) {
err_msg( "二重投稿です。" );
$err_flg = true;
}
# 連続投稿のチェック
if ( !$err_flg ) {
$Query = "select * from access ";
$Query .= " where access_ip = '{$_SERVER['REMOTE_ADDR']}'";
$Column = $SQL->QueryEx( $Query );
if ( $Column ) {
if ( time() - ($Column['access_time'] + 0) < @C:red(10) ) {
err_msg( "連続投稿です。(しばらくしてから投稿して下さい)" );
$err_flg = true;
}
}
}
if ( !$err_flg ) {
$Query = " insert into board (board_title,board_name,board_pass,board_body,board_create,board_update) ";
$pass = sha1($_POST['password']);
if ( trim($_POST['name']) == '' ) {
$_POST['name'] = $someone;
}
$Query .= " values('{$_POST['title']}','{$_POST['name']}','$pass','{$_POST['body']}',now(),now()) ";
$SQL->Execute( $Query );
setcookie ("name", $_POST['name'],time()+3600);
setcookie ("password", $_POST['password'],time()+3600);
# アクセステーブルの更新
$tm = time();
$Query = "update `access` set access_time = $tm where access_ip = '{$_SERVER['REMOTE_ADDR']}'";
$SQL->Execute( $Query );
$cnt = mysql_affected_rows( $SQL->Connect );
if ( $cnt == 0 ) {
$Query = "insert into access (access_ip,access_time) values('{$_SERVER['REMOTE_ADDR']}',$tm)";
$SQL->Execute( $Query );
}
}
}
@END
|