質問編集履歴

1

2021/03/22 22:45

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,8 @@
1
+ ```ここに言語を入力
2
+
3
+ コード
4
+
1
- PHPでお問合せフォームを作りました。
5
+ ```PHPでお問合せフォームを作りました。
2
6
 
3
7
 
4
8
 
@@ -6,360 +10,8 @@
6
10
 
7
11
 
8
12
 
9
- <?php session_start();
13
+ ```php
10
14
 
11
- if (isset($_GET["id"]) || isset($_SESSION["edit"])) {
15
+ コード
12
16
 
13
- if(isset($_GET["id"])){
14
-
15
- $_SESSION["edit"]=$_GET["id"];
16
-
17
- }
18
-
19
- try{
20
-
21
- // PDOインスタンスの生成
22
-
23
- $db= new PDO("mysql:dbname=cafe;host=127.0.0.1;charset=utf8","root","root1203");
24
-
25
- // トランザクションの開始
26
-
27
- $db->beginTransaction();
28
-
29
- // id取得クエリを変数に格納
30
-
31
- $sql = "SELECT * FROM contacts WHERE id = :id";
32
-
33
- // PDOインスタンスからクエリ実行 変数にデータを格納
34
-
35
- $result = $db -> prepare($sql);
36
-
37
- if(!empty($_GET["id"])){
38
-
39
- $_SESSION["edit_id"] = $_GET["id"];
40
-
41
- }
42
-
43
- $edit_id=$_SESSION["edit_id"];
44
-
45
- $result->bindValue(":id",$edit_id,PDO::PARAM_INT);
46
-
47
- $result->execute(array(":id"=>$edit_id));
48
-
49
- // クエリエラー
50
-
51
- if(!$result) {
52
-
53
- echo $db->error;
54
-
55
- exit();
56
-
57
- $db->commit();
58
-
59
- }
60
-
61
- // PDOインスタンスから値を取得し変数に格納
62
-
63
- $data = $result->fetch(PDO::FETCH_ASSOC);
64
-
65
- }catch (PDOException $e) {
66
-
67
- $db->rollBack();
68
-
69
- echo "接続エラー",$e->getMessage();
70
-
71
- }
72
-
73
- } else {
74
-
75
- header("Location: contact.php");
76
-
77
- // ここまで
78
-
79
- }
80
-
81
- ?>
82
-
83
- <!DOCTYPE html>
84
-
85
- <html>
86
-
87
- <head>
88
-
89
- <meta charset="UTF-8">
90
-
91
- <title>cafe</title>
92
-
93
- <!-- ?v=2 -> スタイルシートの都度更新 -->
94
-
95
- <link rel="stylesheet" type="text/css" href="base.css">
96
-
97
- <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
98
-
99
- <script type="text/javascript">
100
-
101
- </script>
102
-
103
- </head>
104
-
105
- <body>
106
-
107
- <?php
108
-
109
- // エラー変数を用意
110
-
111
- $nameError = $kanaError = $telError = $mailError = $textError = "";
112
-
113
- $error = array();
114
-
115
- // nameバリデーションチェック
116
-
117
- if ($_SERVER["REQUEST_METHOD"]== "POST") {
118
-
119
- if (isset($_POST["update"])) {
120
-
121
- $pName = $_POST["name"];
122
-
123
- $pKana = $_POST["kana"];
124
-
125
- $pTel = $_POST["tel"];
126
-
127
- $pMail = $_POST["mail"];
128
-
129
- $pText = $_POST["text"];
130
-
131
-
132
-
133
- if (empty($pName) || mb_strlen($pName) > 10) {
134
-
135
- $error[] = $nameError = "氏名は必須入力です 10文字以内で入力してください";
136
-
137
- $_SESSION["name"] = $pName;
138
-
139
- } else {
140
-
141
- $_SESSION["name"] = $pName;
142
-
143
- };
144
-
145
-
146
-
147
- if(empty($pKana) || mb_strlen($pKana) > 10) {
148
-
149
- $error[] = $kanaError = "フリガナは必須入力です 10文字以内で入力してください";
150
-
151
- $_SESSION["kana"] = $pKana;
152
-
153
- } else {
154
-
155
- $_SESSION["kana"] = $pKana;
156
-
157
- }
158
-
159
-
160
-
161
- if (!ctype_digit($pTel) && $pTel != ""){
162
-
163
- $error[] = $telError = "電話番号は0-9の数字のみで入力してください";
164
-
165
- $_SESSION["tel"] = $pTel;
166
-
167
- } else {
168
-
169
- $_SESSION["tel"] = $pTel;
170
-
171
- }
172
-
173
-
174
-
175
- if (empty($pMail) || !filter_var($pMail, FILTER_VALIDATE_EMAIL)) {
176
-
177
- $error[] = $mailError = "メールアドレスは正しくご入力ください";
178
-
179
- $_SESSION["mail"] = $pMail;
180
-
181
- } else {
182
-
183
- $_SESSION["mail"] = $pMail;
184
-
185
- }
186
-
187
-
188
-
189
- if (empty($pText)) {
190
-
191
- $error[] = $textError = "お問い合わせ内容は必須入力です";
192
-
193
- $_SESSION["text"] = $pText;
194
-
195
- } else {
196
-
197
- $_SESSION["text"] = $pText;
198
-
199
- }
200
-
201
-
202
-
203
- if(empty($error)) {
204
-
205
- $_SESSION["edit"]=0;
206
-
207
- $_SESSION["update"]=1;
208
-
209
- header("Location: update.php");
210
-
211
- exit();
212
-
213
- }
214
-
215
- } elseif ($_POST["back"]) {
216
-
217
- header("Location: contact.php");
218
-
219
- exit();
220
-
221
- }
222
-
223
- };
224
-
225
- $errorJson = json_encode($error);
226
-
227
- ?>
228
-
229
- <script>
230
-
231
- $(function(){
232
-
233
- var $error = <?php echo $errorJson ?>;
234
-
235
- if($error.length >= 1){
236
-
237
- confirm($error.join("\n"));
238
-
239
- }
240
-
241
- });
242
-
243
- </script>
244
-
245
- <div class="edit">
246
-
247
- <div class="container">
248
-
249
- <h2>編集</h2>
250
-
251
- <div class="edit_form">
252
-
253
- <form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"], ENT_QUOTES, 'UTF-8');?>" method="post" accept-charset="utf-8">
254
-
255
- <div class="form_content">
256
-
257
- <label for="name">氏名 <span>*</span></label>
258
-
259
- <p class="error">
260
-
261
- <?php if( isset($nameError)): ?>
262
-
263
- <?php echo $nameError; ?>
264
-
265
- <?php endif ?>
266
-
267
- </p>
268
-
269
- <input type="text" name="name" value="<?php if(isset($data['name'])) { echo htmlspecialchars($data['name']); } elseif(isset($_SESSION['name'])) { echo htmlspecialchars($_SESSION['name']); }; ?>">
270
-
271
- </div>
272
-
273
- <div class="form_content">
274
-
275
- <label for="kana">フリガナ <span>*</span></label>
276
-
277
- <p class="error">
278
-
279
- <?php if( isset($kanaError)): ?>
280
-
281
- <?php echo $kanaError; ?>
282
-
283
- <?php endif ?>
284
-
285
- </p>
286
-
287
- <input type="text" name="kana" value="<?php if(isset($data["kana"])) { echo htmlspecialchars($data['kana']); } elseif(isset($_SESSION['kana'])) { echo htmlspecialchars($_SESSION['kana']); }; ?>">
288
-
289
- </div>
290
-
291
- <div class="form_content">
292
-
293
- <label for="tel">電話番号</label>
294
-
295
- <p class="error">
296
-
297
- <?php if( isset($telError)): ?>
298
-
299
- <?php echo $telError; ?>
300
-
301
- <?php endif ?>
302
-
303
- </p>
304
-
305
- <input type="text" name="tel" value="<?php if(isset($data["tel"])) { echo htmlspecialchars($data['tel']); } elseif(isset($_SESSION['tel'])) { echo htmlspecialchars($_SESSION['tel']); }; ?>">
306
-
307
- </div>
308
-
309
- <div class="form_content">
310
-
311
- <label for="mail">メールアドレス <span>*</span></label>
312
-
313
- <p class="error">
314
-
315
- <?php if( isset($mailError)): ?>
316
-
317
- <?php echo $mailError; ?>
318
-
319
- <?php endif ?>
320
-
321
- </p>
322
-
323
- <input type="text" name="mail" value="<?php if(isset($data["email"])) { echo htmlspecialchars($data['email']); } elseif(isset($_SESSION['mail'])) { echo htmlspecialchars($_SESSION['mail']); }; ?>">
324
-
325
- </div>
326
-
327
- <div class="form_info">
328
-
329
- <p>お問い合わせ内容をご記入ください <span>*</span></p>
330
-
331
- <p class="error">
332
-
333
- <?php if( isset($textError)): ?>
334
-
335
- <?php echo $textError; ?>
336
-
337
- <?php endif ?>
338
-
339
- </p>
340
-
341
- </div>
342
-
343
- <div class="form_content">
344
-
345
- <textarea name="text"><?php if(isset($data["body"])) { echo htmlspecialchars($data['body']); } elseif(isset($_SESSION['text'])) { echo htmlspecialchars($_SESSION['text']); }; ?></textarea>
346
-
347
- </div>
348
-
349
- <div class="form_content">
350
-
351
- <input type="submit" value="更新" name="update">
352
-
353
- <input type="submit" value="戻る" name="back">
354
-
355
- </div>
356
-
357
- </form>
358
-
359
- </div>
360
-
361
- </div>
362
-
363
- </div>
364
-
365
- </body>
17
+ ```<input type="text" name="mail" value="<?php if(isset($data["email"])) { echo htmlspecialchars($data['email']); } elseif(isset($_SESSION['mail'])) { echo htmlspecialchars($_SESSION['mail']); }; ?>">