質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
PDO

PDO(PHP Data Objects)はPHPのデータベース抽象化レイヤーです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

3313閲覧

簡易掲示板作成 添付画像1の[Re]をクリックすると添付画像2が表示されてしまう。

alight022

総合スコア4

PDO

PDO(PHP Data Objects)はPHPのデータベース抽象化レイヤーです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2020/05/07 07:49

簡易掲示板の返信の為の Re をクリックすると添付画像2のエラーが発生してしまう。
本来であれば投稿文に@ 名前 メッセージが表示されるべきである。

申し訳ございませんがお知恵をお貸しください。

よろしくお願い致します。

イメージ説明
イメージ説明

php

1<?php 2session_start(); 3require('dbconnect.php'); 4 5if(isset($_SESSION['id']) && $_SESSION['time'] + 3600 > time()){ 6 $_SESSION['time'] = time(); 7 $members = $db->prepare('SELECT * FROM members WHERE id=?'); 8 $members ->execute(array($_SESSION['id'])); 9 $member = $members ->fetch(); 10} else { 11 header('Location: login.php'); 12 exit(); 13} 14 15if(!empty($_POST)){ 16 if($_POST['message'] !==''){ 17 $message = $db ->prepare('INSERT INTO posts SET member_id=?, message=?, created=NOW()'); 18 $message ->execute(array( 19 $member['id'], 20 $_POST['message'] 21 )); 22 header('Location:index.php'); 23 exit(); 24 } 25} 26$posts = $db->query('SELECT m.name, m.picture, p.* FROM members m, posts p WHERE m.id=p.member_id ORDER BY p.created DESC'); 27 28if(isset($_REQUEST['res'])){ 29 // 返信の処理 30 $response = $db->prepare('SELECT m.name, m.picture, p.* FROM members m, posts p WHERE m.id=p.member_id AND p.id=?'); 31 $response -> $execute(array($_REQUEST['res'])); 32 $table = $response -> fetch(); 33 $message = '@' . $table['name'] . ' ' . $table['message']; 34} 35 36?> 37<!DOCTYPE html> 38<html lang="ja"> 39<head> 40 <meta charset="UTF-8"> 41 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 42 <meta http-equiv="X-UA-Compatible" content="ie=edge"> 43 <title>ひとこと掲示板</title> 44 45 <link rel="stylesheet" href="style.css" /> 46</head> 47 48<body> 49<div id="wrap"> 50 <div id="head"> 51 <h1>ひとこと掲示板</h1> 52 </div> 53 <div id="content"> 54 <div style="text-align: right"><a href="logout.php">ログアウト</a></div> 55 <form action="" method="post"> 56 <dl> 57 <dt><?php print(htmlspecialchars($member['name'], ENT_QUOTES)); ?>さん、メッセージをどうぞ</dt> 58 <dd> 59 <textarea name="message" cols="50" rows="5"> <?php print(htmlspecialchars($message,ENT_QUOTES)); ?> </textarea> 60 <input type="hidden" name="reply_post_id" value="" /> 61 </dd> 62 </dl> 63 <div> 64 <p> 65 <input type="submit" value="投稿する" /> 66 </p> 67 </div> 68 </form> 69 70 71<?php foreach($posts as $post): ?> 72 <div class="msg"> 73 <img src="member_picture/<?php print(htmlspecialchars($post['picture'], ENT_QUOTES)); ?>" width="48" height="48" alt="<?php print(htmlspecialchars($post['name'], ENT_QUOTES)); ?>" /> 74 <p><?php print(htmlspecialchars($post['message'],ENT_QUOTES)); ?><span class="name"><?php print(htmlspecialchars($post['name'], ENT_QUOTES));?></span>[<a href="index.php?res=<?php print(htmlspecialchars($post['id'], ENT_QUOTES));?>">Re</a>]</p> 75 <p class="day"><a href="view.php?id="><?php print(htmlspecialchars($post['created'], ENT_QUOTES)); ?><</a> 76<a href="view.php?id="> 77返信元のメッセージ</a> 78[<a href="delete.php?id=" 79style="color: #F33;">削除</a>] 80 </p> 81 </div> 82<?php endforeach; ?> 83 84<ul class="paging"> 85<li><a href="index.php?page=">前のページへ</a></li> 86<li><a href="index.php?page=">次のページへ</a></li> 87</ul> 88 </div> 89</div> 90</body> 91</html> 92

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2020/05/07 10:01

このコード、自身ではどこまで説明できるのでしょうか。
alight022

2020/05/07 11:04

コード自体はなんとなく理解しているのですが順序や細かいところは全然理解できておりません。
m.ts10806

2020/05/07 11:52

「説明」を求めています。 起きている問題を解決するだけならすぐのことも多いですが 大目的は現在起きている問題だけを解決すれば終わりでしょうか? 自身が書いたコードを「どういう意図で書いたのか」説明できないとそれはもはや他人のコードです。
alight022

2020/05/07 12:01

今回は現在のコードの問題を解決すれば終わりです。 自分で書いたコードですが動画を見ながら勉強のために書いたコードなので100%理解できておりませんでした。申し訳ございません。
guest

回答1

0

ベストアンサー

ここではないですか?

PHP

1$response -> $execute(array($_REQUEST['res']));

投稿2020/05/07 08:22

tabuu

総合スコア2480

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

alight022

2020/05/07 08:24

多分そこだと思うんですが当方PHPの初心者なのでどこがどうおかしいのかがわからず困っておりました。
tabuu

2020/05/07 08:28

検証していないですがコードの書き方的には以下のような感じだと思います。 $response->execute(array($_REQUEST['res']));
alight022

2020/05/07 11:07

ありがとうございます。executeに$がなぜかついてました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問