[teal]<?php[/teal]
[navy]$con[/navy][teal]=[/teal][COLOR=darkgoldenrod]mysql_connect[/color][teal]([/teal][green][i]'localhost'[/i][/green][teal],[/teal][green][i]'test'[/i][/green][teal],[/teal][green][i]'testpasswd'[/i][/green][teal]);[/teal]
[COLOR=darkgoldenrod]mysql_select_db[/color][teal]([/teal][green][i]'MYDB1'[/i][/green][teal]);[/teal]
[b]if[/b] [teal]([/teal][COLOR=darkgoldenrod]is_numeric[/color][teal]([/teal][navy]$_GET[/navy][teal][[/teal][green][i]'last'[/i][/green][teal]]))[/teal] [teal]{[/teal]
[navy]$sql[/navy][teal]=[/teal][green][i]'select id,username,time,message from messages where id>'[/i][/green][teal].[/teal][COLOR=darkgoldenrod]mysql_real_escape_string[/color][teal]([/teal][navy]$_GET[/navy][teal][[/teal][green][i]'last'[/i][/green][teal]]).[/teal][green][i]' order by id'[/i][/green][teal];[/teal]
[navy]$res[/navy][teal]=[/teal][COLOR=darkgoldenrod]mysql_query[/color][teal]([/teal][navy]$sql[/navy][teal]);[/teal]
[navy]$message[/navy][teal]=[/teal][b]array[/b][teal]();[/teal]
[b]while[/b] [teal]([/teal][navy]$row[/navy][teal]=[/teal][COLOR=darkgoldenrod]mysql_fetch_assoc[/color][teal]([/teal][navy]$res[/navy][teal]))[/teal] [teal]{[/teal]
[navy]$date[/navy][teal]=[/teal][COLOR=darkgoldenrod]substr[/color][teal]([/teal][navy]$row[/navy][teal][[/teal][green][i]'time'[/i][/green][teal]],[/teal][purple]0[/purple][teal],[/teal][purple]7[/purple][teal]);[/teal]
[navy]$time[/navy][teal]=[/teal][COLOR=darkgoldenrod]substr[/color][teal]([/teal][navy]$row[/navy][teal][[/teal][green][i]'time'[/i][/green][teal]],[/teal][purple]8[/purple][teal]);[/teal]
[navy]$last[/navy][teal]=[/teal][navy]$row[/navy][teal][[/teal][green][i]'id'[/i][/green][teal]];[/teal]
[navy]$message[/navy][teal][]=[/teal][b]array[/b][teal]([/teal][navy]$date[/navy][teal],[/teal][green][i]"<span>[ $time ]</span><b>$row[username]</b> $row[message]"[/i][/green][teal]);[/teal]
[teal]}[/teal]
[b]if[/b] [teal](![/teal][navy]$message[/navy][teal])[/teal] [teal]{[/teal]
[COLOR=darkgoldenrod]header[/color][teal]([/teal][green][i]'Content-type: text/javascript'[/i][/green][teal]);[/teal]
[COLOR=darkgoldenrod]header[/color][teal]([/teal][green][i]'HTTP/1.1 204 No Content'[/i][/green][teal]);[/teal]
[b]return[/b][teal];[/teal]
[teal]}[/teal]
[COLOR=darkgoldenrod]header[/color][teal]([/teal][green][i]'Content-type: text/javascript'[/i][/green][teal]);[/teal]
[b]echo[/b] [COLOR=darkgoldenrod]json_encode[/color][teal]([/teal][b]array[/b][teal]([/teal][green][i]'last'[/i][/green][teal]=>[/teal][navy]$last[/navy][teal],[/teal][green][i]'message'[/i][/green][teal]=>[/teal][navy]$message[/navy][teal]));[/teal]
[b]return[/b][teal];[/teal]
[teal]}[/teal]
[teal]?>[/teal]
[teal]<![/teal]DOCTYPE HTML PUBLIC [green][i]"-//W3C//DTD HTML 4.01//EN"[/i][/green] [green][i]"[URL unfurl="true"]http://www.w3.org/TR/html4/strict.dtd"[/URL][/i][/green][teal]>[/teal]
[teal]<[/teal]html lang[teal]=[/teal][green][i]"en"[/i][/green][teal]>[/teal]
[teal]<[/teal]head[teal]>[/teal]
[teal]<[/teal]meta http[teal]-[/teal]equiv[teal]=[/teal][green][i]"Content-Type"[/i][/green] content[teal]=[/teal][green][i]"text/html; charset=iso-8859-1"[/i][/green][teal]>[/teal]
[teal]<[/teal]title[teal]>[/teal]BCCI Message Board[teal]</[/teal]title[teal]>[/teal]
[teal]<[/teal]style type[teal]=[/teal][green][i]"text/css"[/i][/green][teal]>[/teal]
div [teal]{[/teal]
color[teal]:[/teal] black[teal];[/teal]
font[teal]-[/teal]size[teal]:[/teal] xx[teal]-[/teal]small[teal];[/teal]
[teal]}[/teal]
b [teal]{[/teal]
color[teal]:[/teal] [gray]#D40606;[/gray]
[teal]}[/teal]
span [teal]{[/teal]
color[teal]:[/teal] lightgray[teal];[/teal]
[teal]}[/teal]
[teal]</[/teal]style[teal]>[/teal]
[teal]</[/teal]head[teal]>[/teal]
[teal]<[/teal]body onload[teal]=[/teal][green][i]"scrollTo(0,1000000000)"[/i][/green][teal]>[/teal]
[teal]<[/teal]div id[teal]=[/teal][green][i]"board"[/i][/green][teal]>[/teal]
[teal]<?php[/teal]
[navy]$sql[/navy][teal]=[/teal][green][i]'select * from (select id,username,time,message from messages order by id desc limit 50) foo order by id'[/i][/green][teal];[/teal]
[navy]$res[/navy][teal]=[/teal][COLOR=darkgoldenrod]mysql_query[/color][teal]([/teal][navy]$sql[/navy][teal]);[/teal]
[b]while[/b] [teal]([/teal][navy]$row[/navy][teal]=[/teal][COLOR=darkgoldenrod]mysql_fetch_assoc[/color][teal]([/teal][navy]$res[/navy][teal]))[/teal] [teal]{[/teal]
[navy]$date[/navy][teal]=[/teal][COLOR=darkgoldenrod]substr[/color][teal]([/teal][navy]$row[/navy][teal][[/teal][green][i]'time'[/i][/green][teal]],[/teal][purple]0[/purple][teal],[/teal][purple]7[/purple][teal]);[/teal]
[navy]$time[/navy][teal]=[/teal][COLOR=darkgoldenrod]substr[/color][teal]([/teal][navy]$row[/navy][teal][[/teal][green][i]'time'[/i][/green][teal]],[/teal][purple]8[/purple][teal]);[/teal]
[b]if[/b] [teal](![/teal][navy]$last[/navy][teal])[/teal] [b]echo[/b] [green][i]"<div><span>[ The day is $date ]</span></div>\n"[/i][/green][teal];[/teal]
[navy]$last[/navy][teal]=[/teal][navy]$row[/navy][teal][[/teal][green][i]'id'[/i][/green][teal]];[/teal]
[b]echo[/b] [green][i]"<div><span>[ $time ]</span><b>$row[username]</b> $row[message]</div>\n"[/i][/green][teal];[/teal]
[teal]}[/teal]
[teal]?>[/teal]
[teal]</[/teal]div[teal]>[/teal]
[teal]<[/teal]div[teal]><[/teal]a name[teal]=[/teal][green][i]"end"[/i][/green][teal]></[/teal]a[teal]></[/teal]div[teal]>[/teal]
[teal]<[/teal]script type[teal]=[/teal][green][i]"text/javascript"[/i][/green][teal]>[/teal]
[b]var[/b] maxmessage[teal]=[/teal][purple]100[/purple]
[b]var[/b] last[teal]=[/teal][green][i]'<?php echo $last; ?>'[/i][/green]
[b]var[/b] date[teal]=[/teal][green][i]'<?php echo $date; ?>'[/i][/green]
[b]var[/b] board[teal]=[/teal]document[teal].[/teal][COLOR=darkgoldenrod]getElementById[/color][teal]([/teal][green][i]'board'[/i][/green][teal])[/teal]
[COLOR=darkgoldenrod]setInterval[/color][teal]([/teal]refresh[teal],[/teal][purple]1000[/purple][teal]*[/teal][purple]3[/purple][teal])[/teal]
window[teal].[/teal][COLOR=darkgoldenrod]scrollTo[/color][teal]([/teal][purple]0[/purple][teal],[/teal][purple]1000000000[/purple][teal])[/teal]
[b]function[/b] [COLOR=darkgoldenrod]refresh[/color][teal]()[/teal]
[teal]{[/teal]
[b]var[/b] result[teal]=[/teal]undefined[teal],[/teal]obi[teal],[/teal]pos
[b]var[/b] http[teal]=[/teal][b]new[/b] [COLOR=darkgoldenrod]XMLHttpRequest[/color][teal]()[/teal]
http[teal].[/teal][COLOR=darkgoldenrod]open[/color][teal]([/teal][green][i]'GET'[/i][/green][teal],[/teal]document[teal].[/teal]location[teal].[/teal]pathname[teal]+[/teal][green][i]'?last='[/i][/green][teal]+[/teal]last[teal]+[/teal][green][i]'&'[/i][/green][teal]+[/teal][b]new[/b] [COLOR=darkgoldenrod]Date[/color][teal]().[/teal][COLOR=darkgoldenrod]getTime[/color][teal](),[/teal]false[teal])[/teal]
http[teal].[/teal][COLOR=darkgoldenrod]send[/color][teal]([/teal]null[teal])[/teal]
[b]if[/b] [teal]([/teal]http[teal].[/teal]readyState[teal]!=[/teal][purple]4[/purple] [teal]||[/teal] http[teal].[/teal]status[teal]!=[/teal][purple]200[/purple][teal])[/teal] [b]return[/b]
[b]eval[/b][teal]([/teal][green][i]'result='[/i][/green][teal]+[/teal]http[teal].[/teal]responseText[teal])[/teal]
[b]for[/b] [teal]([/teal][b]var[/b] i[teal]=[/teal][purple]0[/purple][teal],[/teal]l[teal]=[/teal]result[teal].[/teal]message[teal].[/teal]length[teal];[/teal]i[teal]<[/teal]l[teal];[/teal]i[teal]++)[/teal] [teal]{[/teal]
[b]if[/b] [teal]([/teal]date[teal]!=[/teal]result[teal].[/teal]message[teal][[/teal]i[teal]][[/teal][purple]0[/purple][teal]])[/teal] [teal]{[/teal]
date[teal]=[/teal]result[teal].[/teal]message[teal][[/teal]i[teal]][[/teal][purple]0[/purple][teal]][/teal]
[b]var[/b] div[teal]=[/teal]document[teal].[/teal][COLOR=darkgoldenrod]createElement[/color][teal]([/teal][green][i]'div'[/i][/green][teal])[/teal]
div[teal].[/teal]innerHTML[teal]=[/teal][green][i]'<span> [ Day changed to '[/i][/green][teal]+[/teal]date[teal]+[/teal][green][i]' ]</span>'[/i][/green]
board[teal].[/teal][COLOR=darkgoldenrod]appendChild[/color][teal]([/teal]div[teal])[/teal]
[teal]}[/teal]
[b]var[/b] div[teal]=[/teal]document[teal].[/teal][COLOR=darkgoldenrod]createElement[/color][teal]([/teal][green][i]'div'[/i][/green][teal])[/teal]
div[teal].[/teal]innerHTML[teal]=[/teal]result[teal].[/teal]message[teal][[/teal]i[teal]][[/teal][purple]1[/purple][teal]][/teal]
board[teal].[/teal][COLOR=darkgoldenrod]appendChild[/color][teal]([/teal]div[teal])[/teal]
[teal]}[/teal]
[b]var[/b] [b]list[/b][teal]=[/teal]board[teal].[/teal][COLOR=darkgoldenrod]getElementsByTagName[/color][teal]([/teal][green][i]'div'[/i][/green][teal])[/teal]
[b]for[/b] [teal]([/teal][b]var[/b] i[teal]=[/teal][b]list[/b][teal].[/teal]length[teal]-[/teal]maxmessage[teal]-[/teal][purple]1[/purple][teal];[/teal]i[teal]>=[/teal][purple]0[/purple][teal];[/teal]i[teal]--)[/teal] board[teal].[/teal][COLOR=darkgoldenrod]removeChild[/color][teal]([/teal][b]list[/b][teal][[/teal]i[teal]])[/teal]
last[teal]=[/teal]result[teal].[/teal]last
window[teal].[/teal][COLOR=darkgoldenrod]scrollTo[/color][teal]([/teal][purple]0[/purple][teal],[/teal][purple]1000000000[/purple][teal])[/teal]
[teal]}[/teal]
[teal]</[/teal]script[teal]>[/teal]
[teal]</[/teal]body[teal]>[/teal]
[teal]</[/teal]html[teal]>[/teal]