CREATE TABLE `chat` (
`chid` int(10) unsigned auto_increment,
`name` varchar(255),
`text` text,
`date` datetime,
PRIMARY KEY (`chid`)
) AUTO_INCREMENT=1000000001
if(!isset($_SESSION)) session_start();
$msg = "
名前と文章を入力して送信ボタンを押してください。
";
// チャット内容の取得
$_chat = array();
$rst = mysql_query("select * from chat order by date desc limit 30");
while($col=mysql_fetch_assoc($rst)) $_chat[$col["chid"]] = $col;
mysql_free_result($rst);
// 直近のIDをセッションに登録
$_SESSION["max_chid"] = count($_chat) ? max(array_keys($_chat)) : 0 ;
?>
if(!isset($_SESSION)) session_start();
// キャッシュを取らないように
header("Expires: Thu, 01 Dec 1994 16:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0",false);
header("Pragma: no-cache");
header("Content-type: text/html; charset=utf-8");
$max_chid = isset($_SESSION["max_chid"]) ? $_SESSION["max_chid"] : 0 ;
// チャットの内容の取得
$_chat = array();
$rst = mysql_query("select * from chat where chid > {$max_chid} order by date desc limit 30");
while($col=mysql_fetch_assoc($rst)) $_chat[$col["chid"]] = $col;
mysql_free_result($rst);
// 直近のID
$_SESSION["max_chid"] = count($_chat) ? max(array_keys($_chat)) : $max_chid ;
// チャットデータの書き出し
foreach($_chat as $val){?>
| | |
}?>
$name = isset($_POST["name"]) ? $_POST["name"] : "" ;
$text = isset($_POST["text"]) ? $_POST["text"] : "" ;
$err = array();
if(!$name) $err[] = "名前 を入力してください";
if(mb_strlen($name)>10) $err[] = "名前 は10文字以内で入力してください";
if(!$text) $err[] = "文章 を入力してください";
if(mb_strlen($text)>50) $err[] = "文章 は50文字以内で入力してください";
if(!count($err)){
mysql_query("insert into chat set date = now(), name = '".addslashes($name)."', text = '".addslashes($text)."'");
}else{
$msg = showerr($err);
}
?>