こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

php+mysql

phpからdbに簡易掲示板作成
タイトル、本文書き込み後入力データを下に表示

タイトル 本文 書き込み日時
このように表示させるようにしてますが
if ( isset( $_POST['send'] )===true { ここでエラーが出てしまいます。
何が違うのか助言お願いします。
DB側テーブル構成
id
subject
honbun
kakikomi です

<?php
$link = mysql_connect('localhost','ogawa','taku1106','ogawa');
if ( $link !==false) {
$msg ='';
$err_msg ='';
if ( isset( $_POST['send'] )===true {
$subject =$_POST['subject'];
$honbun =$_POST['honbun'];
$kakikomi =$_PSOST['kakikomi'];
if ( $subject !=='' && $honbun !=='' && $kakikomi !=='' ) {
$query = " INSERT INTO ogawa ( "
."subject,"
."honbun,"
."kakikomi"
.") VALUES ( "
. "'" . mysqli_real_escape_string( $link, $subject ) ."', "
. "'" . mysqli_real_escape_string( $link, $honbun ) . "',"
. "'" . mysqli_real_eacape_string( $link, $kakikomi) . "'"
." ) ";
$kakikomi = date('Y-m-d h:i:s');
$res = mysqli_query($link,$query);
if ($res !==false) {
$msg = '書き込みに成功しました。';
}else{
$err_msg = '書き込みに失敗しました。';
}
}else{
$err_msg = 'タイトルと本文を書き込んで下さい。';
}
}
$query = "SELECT id,subject,honbun,kakikomi FROM ogawa";
$res = mysql_query($link,$query);
$data = array();
while($row = mysql_fetch_assoc($res)) {
array_push($data,$row);
}
arsort($data);
}else{
echo"データベースの接続に失敗しました";
}
mysql_close($link);
?>
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF8;" />
</head>
<body>>
<table border="1">
<form action="test6.php" method="POST">
<tr><th>タイトル<td><input type="text" name="text" size="50"></td></tr>
<tr><th>本文<td><textarea name="subject" cols="52" rows="8"></textarea>
<tr><td><input type="submit" value="保存 する" /></td><tr>
</table>
</form>
<?php
if ($msg !=='')echo'<p>'.$msg.'</p>';
if ($err_msg !=='')echo'<p style="color:#f00;">'.$err_msg.'</p>';
foreach($data as $key =>$val) {
echo $val['subject'].''.$val['honbun'].''.$val['kakikomi'].'<br>';
}
?>
</body>
</html>

投稿日時 - 2017-05-08 14:46:01

QNo.9326774

すぐに回答ほしいです

質問者が選んだベストアンサー

> Parse error: syntax error, unexpected 'true' (T_STRING) in C:\xampp\htdocs\phptest\test6.php on line 6って出てます

エラーメッセージの通りの問題がプログラムにあります。
「Parse error」はPHPがプログラムを処理しようとした際に、構文解析中にエラーが起きたと言う意味です。
続く「syntax error」はプログラムに記述ミスがあると言う意味です。
で、PHPが記述ミスがあると判断した理由が「unexpected 'true' (T_STRING)」で、 'true' と言う文字列が本来あるべきで無い場所にあると言っています。(実際は 'true' 自体が問題では無く、その周辺に問題があるケースが多い)

実際のプログラムは
if ( isset( $_POST['send'] )===true {
で、true の周囲を見ると true のすぐ後が { になっていて、本来なら if の条件判定式は ( ) に囲まれていて、その後に { が来るはずなので、明らかに記述ミスがあります。
正しいプログラムは
if ( isset( $_POST['send'] )===true) {
で、true と { の間に ) が入っている必要があります。

投稿日時 - 2017-05-08 16:03:25

お礼

ありがとうございます

投稿日時 - 2017-05-08 16:16:22

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

> if ( isset( $_POST['send'] )===true { ここでエラーが出てしまいます。

エラーメッセージには何て書いてありますか?
デバッグを行う上でエラーメッセージはとても重要な情報ですから、内容を確認して質問内容に書くようにしましょう。

あと、form の内容のみる限り send という名前の付いた入力要素がありませんので、このままでは isset( $_POST['send'] ) が TRUE になる事はありません。

投稿日時 - 2017-05-08 14:56:57

補足

Parse error: syntax error, unexpected 'true' (T_STRING) in C:\xampp\htdocs\phptest\test6.php on line 6って出てます

投稿日時 - 2017-05-08 15:16:00