【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言

かれこれ6時間眺めてますが何が駄目なのかがわかりません。
どこが悪いのか教えていただけると助かります。

このbbs.phpは
二つのインプット要素をもつHTMLフォームを含むPHPファイルで、
名前とひとことコメントを入力してsubmitすれば
フォームの下部にそのコメントを
名前、コメント、日付の書式で一行づつ表示する
。。。はずだったんですが

Parse error: syntax error, unexpected T_STRING in /Applications/XAMPP/xamppfiles/htdocs/online_bbs/bbs.php on line 48

らしく該当する行を眺めてみても何がいけないのかさっぱりです。
コード内にもエラーが出たら出力するコードがあるのですが
どうやらこれはインタープリタ自体が吐くエラーのようで
このエラーの表示時にはフォーム要素は一切表示されません。

なにがいけないのか教えてください
ほとほと困り果てています

<?php


$link = mysql_connect(`localhost`,`root`,`takataka`);
if(!$link) {
die(`Can not connect database`. mysql_error());
}
mysql_select_db(`online_bbs`,$link);

$errors = array();

if($_SERVER[`REQUEST_MTHOD`]===`POST`) {
$name = null;
if(!isset($_POST[`name`]) || !strlen($_POST[`name`])) {
$errors[`name`] = `input your name `;
}else if(strlen($_POST[`name`]) > 40) {
$errors[`name`] = `名前は四十文字以内で入力してください`;
}else {
$name = $_POST[`name`];
}
$comment = null;

if(!isset($_POST[`comment`]) || !strlen($_POST[`comment`])) {
$errors[`comment`] = `Input your comment please `;
}else if(strlen($_POST[`comment`]) > 200) {
$errors[`comment`] = `コメントは200文字以内で入力してください`;
}else {
$comment = $_POST[`comment`];
}
if(count($errors) === 0) {
$sql = "INSERT INTO `post` (`name`,`comment`,`created_at`) VALUES (`"
. mysql_real_escape_string($name) . "`,`"
. mysql_real_escape_string($comment) . "`,`"
. date(`Y-m-d H:i:s`) . "`);

mysql_query($sql,$link);
mysql_close($link);
header(`Location: http://localhost/online_bbs/bbs.php`);
}
}
?>
<html>
<head>
   <titlle>ひとこと掲示板</title>
</head>
<body>
<h1>ひとこと掲示板掲示板</h1>

<form action="bbs.php" method="post"> //ここが48行目になります
<?php if (count($errors) > 0): ?>
<ul class="error_list">
<?php foreach ($errors as $error): ?>
<li>
<?php echo htmlspecialchars($error,ENT_QUOTES,`UTF-8`) ?>
</li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
名前:<input type="text" name="name"/><br/>
ひとこと;<input type="text" name="comment" size="60"/><br/>
<input type="submit" name="submit" value="送信"/>
</form>
<?php
$sql = "SELECT * FROM `post` ORDER BY `created_at` DESC";
$result = mysql_query($sql,$link);
?>
<p><?php echo $result; ?></p>
<?php if($result !== false && mysql_num_rows($result)): ?>
<ul>
<?php while($post = mysql_fetch_assoc($result)): ?>
<li>
<?php echo htmlspecialchars($post[`name`],ENT_QUOTES,`UTF-8`); ?>
<?php echo htmlspecialchars($post[`comment`],ENT_QUOTES,`UTF-8`); ?>
-
<?php echo htmlspecialchars($post[`created_at`],ENT_QUOTES,`UTF-8`); ?>
</li>
<p>test</p>
<?php endwhile; ?>
</ul>
<?php endif; ?>
<?php
mysql_free_result($result);
mysql_close($link);
?>
</body>
</html>

A 回答 (2件)

`localhost`,`root`,`takataka`など、文字列らしき箇所がバッククオートになっているのですが、意図したものですか?



バッククオート( ` 日本語キーボードだと、Shift+@ )の使い方
http://www.php.net/manual/ja/language.operators. …

文字列に使うのは、シングルクオート( ' 日本語キーボードだと、Shift+7)
あるいはダブルクオート( " 日本語キーボードだと、Shift+2)
http://www.php.net/manual/ja/language.types.stri …

この回答への補足

ああああああああああああああああああ
指摘されて初めて気づきました(冷や汗)
こんな間違いに丸一日気づかないとは。。。。。。
とりあえず全部シングルクォートに置換してやってみます

補足日時:2013/07/05 11:36
    • good
    • 0
この回答へのお礼

解決しました。
私の複数箇所に及ぶ書き損じが原因でした。
あるべき文字がそこにない行が複数ありつあり、それを全部直すことで
動作するようになりました。

しかし、それらをすべて直してもバッククォートのままでは動作しなかったでしょう。あなたのご指摘のおかげで勉強を前へ進めることができました。
本当に感謝します。
ありがとうございました。

お礼日時:2013/07/05 12:05

その行を見てもダメならもっと前を見る.

この回答への補足

見てみたら
METHODと書くべきところがMTHODとつづりを間違えているのに気づきました。訂正してみましたが
いまだに上記エラーが吐き出されます。
.....どうも複数のエラーを含むコードを書いてしまったようです。
要素ひとつ一つに書き間違いがないかどうかいまからチェックしてみます。

補足日時:2013/07/05 11:52
    • good
    • 0
この回答へのお礼

解決しました。
私の複数箇所に及ぶ書き損じが原因でした。
あるべき文字がそこにない行が複数ありつあり、それを全部直すことで
動作するようになりました。

エラーが示す行だけではなく、その周辺にも目をやるようにします。
ご指摘ありがとうございました

お礼日時:2013/07/05 12:03

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!