かれこれ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>
No.1ベストアンサー
- 回答日時:
`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 …
この回答への補足
ああああああああああああああああああ
指摘されて初めて気づきました(冷や汗)
こんな間違いに丸一日気づかないとは。。。。。。
とりあえず全部シングルクォートに置換してやってみます
解決しました。
私の複数箇所に及ぶ書き損じが原因でした。
あるべき文字がそこにない行が複数ありつあり、それを全部直すことで
動作するようになりました。
しかし、それらをすべて直してもバッククォートのままでは動作しなかったでしょう。あなたのご指摘のおかげで勉強を前へ進めることができました。
本当に感謝します。
ありがとうございました。
No.2
- 回答日時:
その行を見てもダメならもっと前を見る.
この回答への補足
見てみたら
METHODと書くべきところがMTHODとつづりを間違えているのに気づきました。訂正してみましたが
いまだに上記エラーが吐き出されます。
.....どうも複数のエラーを含むコードを書いてしまったようです。
要素ひとつ一つに書き間違いがないかどうかいまからチェックしてみます。
解決しました。
私の複数箇所に及ぶ書き損じが原因でした。
あるべき文字がそこにない行が複数ありつあり、それを全部直すことで
動作するようになりました。
エラーが示す行だけではなく、その周辺にも目をやるようにします。
ご指摘ありがとうございました
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
HTML
-
接続ができません
-
mysqlへのインポート処理がうま...
-
MySQLカラム名は日本語と英数字...
-
ODP.NETのバージョン確認
-
INT型は金額の型に使用するべき...
-
副問合せにLIKE文を使う方法は...
-
mysqlがインストールされている...
-
select * outfileがうまくいき...
-
パスワード入力を省略したい
-
RPMのmysqlとmysql-serverの違い
-
postgreSQLのデータ型
-
phpMyAdminでのエラー「mysql ...
-
ODBC接続で全角文字が文字化け
-
VBAで変数内に保持された二次配...
-
SQLのVARCHARとVARCHAR2の違い
-
Puttyでサーバー上のMySQLを操...
-
JDBCドライバの登録と接続
-
SFTPで/var/lib/mysql/にPUT
-
ブログサイトを作る時、mysqlは...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
sqlite_escape_stringのアンエ...
-
ページング実装で2ページ目以...
-
MySQLとPHPを使用した「何分前...
-
クラスファイルでエラーが出て...
-
PHPのサンプルコードが意図した...
-
LOAD DATA LOCAL INFILE
-
PHP4.2.2 + MySQL4.1.12 にてWa...
-
Flash→PHP→MySQLへの値の受け渡...
-
「addslashes」と「htmlspecial...
-
mysqlでphpinfoと実際のバージ...
-
接続ができません
-
ODP.NETのバージョン確認
-
副問合せにLIKE文を使う方法は...
-
INT型は金額の型に使用するべき...
-
MySQLカラム名は日本語と英数字...
-
SQLのVARCHARとVARCHAR2の違い
-
VBAで変数内に保持された二次配...
-
postgreSQLのデータ型
-
RPMのmysqlとmysql-serverの違い
-
like句を使って日本語を検索す...
おすすめ情報