1
0

More than 5 years have passed since last update.

このコードのどこが間違っているのでしょうか?

Last updated at Posted at 2012-03-16

<?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 echo htmlspecialchars($member['name']); ?>さん、メッセージをどうぞ


<?php echo h($message); ?>



<?php
while($post = mysql_fetch_assoc($posts)):
?>


(<?php echo h($post['name']); ?>)[">返信元のメッセージ
<?php
endif;
?>
<?php
if ($_SESSION['id'] == $post['member_id']):
?>
[ 1) { ?> 前のページへ 前のページへ 次のページへ 次のページへ



(C) H2O Space. MYCOM






エラーの内容としましては: syntax error, unexpected $end on line 163となります。
誰か教えてくれませんか?
1
0
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0