<?php
session_start();
require('dbconnect.php');
if (isset($_SESSION['id']) && $_SESSION['time'] + 3600 > time()) {
// ログインしている
$_SESSION['time'] = time();
$sql = sprintf('SELECT * FROM members WHERE id=%d',
mysql_real_escape_string($_SESSION['id'])
);
$record = mysql_query($sql) or die(mysql_error());
$member = mysql_fetch_assoc($record);
} else {
// ログインしていない
header('Location: login.php');
// 投稿を記録する
if (!empty($_POST)) {
if ($_POST['message'] != '') {
$sql = sprintf('INSERT INTO posts SET member_id=%d, message="%s", reply_post_id=%d, created=NOW()',
mysql_real_escape_string($member['id']),
mysql_real_escape_string($_POST['message']),
mysql_real_escape_string($_POST['reply_post_id'])
);
mysql_query($sql) or die(mysql_error());
header('Location: index.php'); exit();
}
}
// 投稿を取得する
$page = $_REQUEST['page'];
if ($page == '') {
$page = 1;
}
$page = max($page, 1);
// 最終ページを取得する
$sql = 'SELECT COUNT(*) AS cnt FROM posts';
$recordSet = mysql_query($sql);
$table = mysql_fetch_assoc($recordSet);
$maxPage = ceil($table['cnt'] / 5);
$page = min($page, $maxPage);
$start = ($page - 1) * 5;
$start = max(0, $start);
$sql = sprintf('SELECT m.name, m.picture, p.* FROM members m, posts p WHERE m.id=p.member_id ORDER BY p.created DESC LIMIT %s, 5',
$start
);
$posts = mysql_query($sql) or die(mysql_error());
// 返信の場合
if (isset($_REQUEST['res'])) {
$sql = sprintf('SELECT m.name, m.picture, p.* FROM members m, posts p WHERE m.id=p.member_id AND p.id=%d ORDER BY p.created DESC',
mysql_real_escape_string($_REQUEST['res'])
);
$record = mysql_query($sql) or die(mysql_error());
$table = mysql_fetch_assoc($record);
$message = '@' . $table['name'] . ' ' . $table['message'];
}
// htmlspecialcharsのショートカット
function h($value) {
return htmlspecialchars($value, ENT_QUOTES, 'UTF-8');
}
// 本文内のURLにリンクを設定します
function makeLink($value) {
return mb_ereg_replace("(https?)(://[[:alnum:]+\$\;\?.%,!#~*/:@&=_-]+)", '\1\2' , $value);
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "" class="autolink">http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
ひとこと掲示板
ひとこと掲示板
<?php
while($post = mysql_fetch_assoc($posts)):
?>
(<?php echo h($post['name']); ?>)[">返信元のメッセージ
<?php
endif;
?>
<?php
if ($_SESSION['id'] == $post['member_id']):
?>
[ 1) { ?> 前のページへ 前のページへ 次のページへ 次のページへ
エラーの内容としましては: syntax error, unexpected $end on line 163となります。
誰か教えてくれませんか?