質問編集履歴
2
var_dumpで確認してみました
title
CHANGED
File without changes
|
body
CHANGED
@@ -82,5 +82,9 @@
|
|
82
82
|
</body>
|
83
83
|
</html>
|
84
84
|
```
|
85
|
+
var_dumpで値が入ってるか見たのですが入ってませんでした。。。
|
86
|
+

|
87
|
+
|
88
|
+
|
85
89
|
なぜかtextera内のnameを"message"から別の文字列に変えると$_POSTには値が入るのですがそれに合わせて一番最初のif文以下の$_POST[""]の中のmessageを変えるとまた値が入らなくなります。
|
86
90
|
教科書通りに進めているのになぜだかここだけうまくいきません。。。。。
|
1
コード全文をのせました。よろしくお願いいたします・・・
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,46 +1,86 @@
|
|
1
1
|
現在PHPの教材を使ってプログラムを組んでいるのですが$_POSTにうまく値が入ってくれません。
|
2
2
|
|
3
|
+
達成したいこと:
|
4
|
+
フォームに入力した値を同じページの下部に表示したい。
|
5
|
+
|
6
|
+
発生している問題:
|
7
|
+
フォームで入力した文章が$_POSTに入らずDBにINSERTできない
|
8
|
+
|
3
|
-
以下コード
|
9
|
+
以下コード全文になります。
|
4
10
|
```php
|
11
|
+
<?php
|
12
|
+
session_start();
|
13
|
+
require('dbconnect.php');
|
14
|
+
if (isset($_SESSION['id']) && $_SESSION['time'] + 3600 > time()) {
|
15
|
+
// ログインしている
|
16
|
+
$_SESSION['time'] = time();
|
17
|
+
$members = $db->prepare('SELECT * FROM members WHERE id=?');
|
18
|
+
$members->execute(array($_SESSION['id']));
|
19
|
+
$member = $members->fetch();
|
20
|
+
} else {
|
21
|
+
// ログインしていない
|
22
|
+
header('Location: login.php');
|
23
|
+
exit();
|
24
|
+
}
|
5
|
-
// 投稿を記録する
|
25
|
+
// 投稿を記録する
|
6
26
|
if (!empty($_POST)) {
|
7
27
|
if ($_POST['message'] != '') {
|
8
|
-
$message = $db->prepare('INSERT INTO posts SET member_id=?,
|
28
|
+
$message = $db->prepare('INSERT INTO posts SET member_id=?, message=?,created=NOW()');
|
9
29
|
$message->execute(array(
|
10
30
|
$member['id'],
|
11
|
-
$_POST['message']
|
31
|
+
$_POST['message']
|
12
|
-
$_POST['reply_post_id']
|
13
32
|
));
|
14
|
-
|
15
33
|
header('Location: index.php'); exit();
|
16
34
|
}
|
17
35
|
}
|
36
|
+
// 投稿を取得する
|
37
|
+
$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');
|
38
|
+
?>
|
39
|
+
<!DOCTYPE html>
|
40
|
+
<html lang="ja">
|
41
|
+
<head>
|
42
|
+
<meta charset="UTF-8">
|
43
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
44
|
+
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
45
|
+
<title>ひとこと掲示板</title>
|
18
46
|
|
47
|
+
<link rel="stylesheet" href="style.css" />
|
48
|
+
</head>
|
49
|
+
|
19
50
|
<body>
|
20
51
|
<div id="wrap">
|
21
52
|
<div id="head">
|
22
53
|
<h1>ひとこと掲示板</h1>
|
23
54
|
</div>
|
24
55
|
<div id="content">
|
25
|
-
<div style="text-align: right"><a href="logout.php">ログアウト</a></div>
|
26
|
-
|
56
|
+
<form action="" method="post">
|
27
|
-
|
57
|
+
<dl>
|
28
|
-
|
58
|
+
<dt><?php echo htmlspecialchars($member['name'], ENT_QUOTES); ?>さん、メッセージをどうぞ</dt>
|
29
|
-
|
59
|
+
<dd>
|
30
|
-
//ここでフォームに入力
|
31
|
-
|
60
|
+
<textarea name="message" cols="50" rows="5"></textarea>
|
32
|
-
|
33
|
-
<input type="hidden" name="reply_post_id" value="<?php echo h($_REQUEST['res']); ?>" />
|
34
|
-
|
61
|
+
</dd>
|
35
|
-
|
62
|
+
</dl>
|
36
|
-
|
63
|
+
<div>
|
37
|
-
<p>
|
38
|
-
|
64
|
+
<input type="submit" value="投稿する" />
|
39
|
-
</p>
|
40
|
-
|
65
|
+
</div>
|
41
|
-
|
66
|
+
</form>
|
42
67
|
|
68
|
+
<?php
|
69
|
+
foreach ($posts as $post):
|
70
|
+
?>
|
71
|
+
<div class="msg">
|
72
|
+
<img src="member_picture/<?php echo htmlspecialchars($post['picture'], ENT_QUOTES); ?>" width="48" height="48" alt="<?php echo htmlspecialchars($post['name'], ENT_QUOTES); ?>" />
|
73
|
+
<p><?php echo htmlspecialchars($post['message'], ENT_QUOTES);?><span class="name">(<?php echo htmlspecialchars($post['name'], ENT_QUOTES); ?>)</span></p>
|
74
|
+
<p class="day"><?php echo htmlspecialchars($post['created'], ENT_QUOTES); ?></p>
|
75
|
+
</div>
|
76
|
+
<?php
|
77
|
+
endforeach;
|
78
|
+
?>
|
79
|
+
</div>
|
80
|
+
|
81
|
+
</div>
|
82
|
+
</body>
|
83
|
+
</html>
|
43
84
|
```
|
44
|
-
|
45
85
|
なぜかtextera内のnameを"message"から別の文字列に変えると$_POSTには値が入るのですがそれに合わせて一番最初のif文以下の$_POST[""]の中のmessageを変えるとまた値が入らなくなります。
|
46
86
|
教科書通りに進めているのになぜだかここだけうまくいきません。。。。。
|