teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

実際のサンプル値を記述しました。また、試したことに追加の記述をしました。

2020/07/26 00:48

投稿

yokkoh
yokkoh

スコア1

title CHANGED
File without changes
body CHANGED
@@ -5,9 +5,31 @@
5
5
  ### 発生している問題・エラーメッセージ
6
6
  空欄チェックを通るような内容を入力したときにのみ、送信するとフォームに入力したデータが消えてしまいます。エラーメッセージは出ず、1箇所を空欄にするなど空欄チェックをパスできない内容で送信したときには正しく受け取ることができます。
7
7
 
8
+ 追記:
9
+
10
+ メールアドレス:test
11
+ ニックネーム:test
12
+ パスワード:test
13
+ パスワード確認:(空欄)
14
+ で送信するとvar_dump($_POST)は
15
+ ```
16
+ array(4) { ["email"]=> string(4) "test" ["name"]=> string(4) "test" ["password"]=> string(4) "test" ["passwordCheck"]=> string(0) "" }
17
+ ```
18
+
19
+ メールアドレス:test
20
+ ニックネーム:test
21
+ パスワード:test
22
+ パスワード確認:test
23
+ で送信するとvar_dump($_POST)は
24
+ ```
25
+ array(0) { }
26
+ ```
27
+ となってしまいます。
8
28
  ### 該当のソースコード
9
29
 
10
- ```ここに言語名を入力
30
+ ```php
31
+ signup.php
32
+
11
33
  <?php
12
34
  session_start();
13
35
  require_once('dbconnect.php');
@@ -78,12 +100,42 @@
78
100
  </body>
79
101
  </html>
80
102
  ```
103
+ ```PHP
104
+ insert.php
81
105
 
106
+ <?php
107
+ session_start();
108
+ require_once('dbconnect.php');
109
+
110
+ if(isset($_SESSION['signup'])){
111
+ $statement = $db->prepare('INSERT INTO customers
112
+ SET name=?, email=?, password=?, created=NOW()');
113
+ $statement->execute(array(
114
+ $_SESSION['signup']['name'],
115
+ $_SESSION['signup']['email'],
116
+ sha1($_SESSION['signup']['password'])
117
+ ));
118
+ unset($_SESSION['signup']);
119
+ header('location: post.php');
120
+ exit();
121
+
122
+ }else{
123
+ header('location:signup.php');
124
+ exit();
125
+ }
126
+ ?>
127
+ ```
82
128
  ### 試したこと
83
129
 
84
130
  echo var_dump($_POST)
85
131
  で$_POSTの中身を確認していますが、データが空になってしまうときは空欄チェックに入る前にもうすでに空になっており、なぜそうなっているのか理由がわかりません。
86
132
  空欄チェックをなくしたり、1箇所空欄にしたりすると正常に受け取れます。
87
133
 
134
+ 追記:
135
+ header関数を削除すると正常に受け取れるようです。
136
+
137
+
138
+
139
+
88
140
  ### 補足情報(FW/ツールのバージョンなど)
89
141
  環境:MAMP、ローカル環境、PHP 7.3.11