質問編集履歴

2

var_dumpで確認してみました

2019/08/30 06:23

投稿

KazuyaKojima
KazuyaKojima

スコア16

test CHANGED
File without changes
test CHANGED
@@ -166,6 +166,14 @@
166
166
 
167
167
  ```
168
168
 
169
+ var_dumpで値が入ってるか見たのですが入ってませんでした。。。
170
+
171
+ ![イメージ説明](8ca53746b5fe59d85b5c4a619f6a9c18.png)
172
+
173
+
174
+
175
+
176
+
169
177
  なぜかtextera内のnameを"message"から別の文字列に変えると$_POSTには値が入るのですがそれに合わせて一番最初のif文以下の$_POST[""]の中のmessageを変えるとまた値が入らなくなります。
170
178
 
171
179
  教科書通りに進めているのになぜだかここだけうまくいきません。。。。。

1

コード全文をのせました。よろしくお願いいたします・・・

2019/08/30 06:23

投稿

KazuyaKojima
KazuyaKojima

スコア16

test CHANGED
File without changes
test CHANGED
@@ -2,35 +2,97 @@
2
2
 
3
3
 
4
4
 
5
+ 達成したいこと:
6
+
7
+ フォームに入力した値を同じページの下部に表示したい。
8
+
9
+
10
+
11
+ 発生している問題:
12
+
13
+ フォームで入力した文章が$_POSTに入らずDBにINSERTできない
14
+
15
+
16
+
5
- 以下コード抜粋
17
+ 以下コード全文になります。
6
18
 
7
19
  ```php
8
20
 
21
+ <?php
22
+
23
+ session_start();
24
+
25
+ require('dbconnect.php');
26
+
27
+ if (isset($_SESSION['id']) && $_SESSION['time'] + 3600 > time()) {
28
+
29
+ // ログインしている
30
+
31
+ $_SESSION['time'] = time();
32
+
33
+ $members = $db->prepare('SELECT * FROM members WHERE id=?');
34
+
35
+ $members->execute(array($_SESSION['id']));
36
+
37
+ $member = $members->fetch();
38
+
39
+ } else {
40
+
41
+ // ログインしていない
42
+
43
+ header('Location: login.php');
44
+
45
+ exit();
46
+
47
+ }
48
+
9
- // 投稿を記録する **ここで値が入ってないためif文以下が動かない**
49
+ // 投稿を記録する
10
50
 
11
51
  if (!empty($_POST)) {
12
52
 
13
53
  if ($_POST['message'] != '') {
14
54
 
15
- $message = $db->prepare('INSERT INTO posts SET member_id=?, messages=?, reply_post_id=?, created=NOW()');
55
+ $message = $db->prepare('INSERT INTO posts SET member_id=?, message=?,created=NOW()');
16
56
 
17
57
  $message->execute(array(
18
58
 
19
59
  $member['id'],
20
60
 
21
- $_POST['message'],
61
+ $_POST['message']
22
-
23
- $_POST['reply_post_id']
24
62
 
25
63
  ));
26
-
27
-
28
64
 
29
65
  header('Location: index.php'); exit();
30
66
 
31
67
  }
32
68
 
33
69
  }
70
+
71
+ // 投稿を取得する
72
+
73
+ $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');
74
+
75
+ ?>
76
+
77
+ <!DOCTYPE html>
78
+
79
+ <html lang="ja">
80
+
81
+ <head>
82
+
83
+ <meta charset="UTF-8">
84
+
85
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
86
+
87
+ <meta http-equiv="X-UA-Compatible" content="ie=edge">
88
+
89
+ <title>ひとこと掲示板</title>
90
+
91
+
92
+
93
+ <link rel="stylesheet" href="style.css" />
94
+
95
+ </head>
34
96
 
35
97
 
36
98
 
@@ -46,45 +108,63 @@
46
108
 
47
109
  <div id="content">
48
110
 
49
- <div style="text-align: right"><a href="logout.php">ログアウト</a></div>
111
+ <form action="" method="post">
50
112
 
51
- <form action="" method="post">
113
+ <dl>
52
114
 
53
- <dl>
115
+ <dt><?php echo htmlspecialchars($member['name'], ENT_QUOTES); ?>さん、メッセージをどうぞ</dt>
54
116
 
55
- <dt><?php echo h($member['name']); ?>さん、メッセージをどうぞ</dt>
117
+ <dd>
56
118
 
57
- <dd>
119
+ <textarea name="message" cols="50" rows="5"></textarea>
58
120
 
59
- //ここでフォームに入力
121
+ </dd>
60
122
 
61
- <textarea type="text" name="message" cols="70" rows="10"><?php echo h($message); ?></textarea>
123
+ </dl>
62
124
 
63
-
125
+ <div>
64
126
 
65
- <input type="hidden" name="reply_post_id" value="<?php echo h($_REQUEST['res']); ?>" />
127
+ <input type="submit" value="投稿する" />
66
128
 
67
- </dd>
129
+ </div>
68
130
 
69
- </dl>
70
-
71
- <div>
72
-
73
- <p>
74
-
75
- <input type="submit" value="投稿する" />
76
-
77
- </p>
78
-
79
- </div>
80
-
81
- </form>
131
+ </form>
82
132
 
83
133
 
84
134
 
135
+ <?php
136
+
137
+ foreach ($posts as $post):
138
+
85
- ```
139
+ ?>
140
+
141
+ <div class="msg">
142
+
143
+ <img src="member_picture/<?php echo htmlspecialchars($post['picture'], ENT_QUOTES); ?>" width="48" height="48" alt="<?php echo htmlspecialchars($post['name'], ENT_QUOTES); ?>" />
144
+
145
+ <p><?php echo htmlspecialchars($post['message'], ENT_QUOTES);?><span class="name">(<?php echo htmlspecialchars($post['name'], ENT_QUOTES); ?>)</span></p>
146
+
147
+ <p class="day"><?php echo htmlspecialchars($post['created'], ENT_QUOTES); ?></p>
148
+
149
+ </div>
150
+
151
+ <?php
152
+
153
+ endforeach;
154
+
155
+ ?>
156
+
157
+ </div>
86
158
 
87
159
 
160
+
161
+ </div>
162
+
163
+ </body>
164
+
165
+ </html>
166
+
167
+ ```
88
168
 
89
169
  なぜかtextera内のnameを"message"から別の文字列に変えると$_POSTには値が入るのですがそれに合わせて一番最初のif文以下の$_POST[""]の中のmessageを変えるとまた値が入らなくなります。
90
170