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

質問編集履歴

4

2021/12/01 01:17

投稿

gujhufiugho
gujhufiugho

スコア245

title CHANGED
File without changes
body CHANGED
File without changes

3

提示した3つのコードにタイトル名を追加しました。

2021/12/01 01:17

投稿

gujhufiugho
gujhufiugho

スコア245

title CHANGED
File without changes
body CHANGED
@@ -8,7 +8,7 @@
8
8
  どうしたらよいでしょうか?回答よろしくお願いいたします。
9
9
 
10
10
  入力フォーム→確認表示画面→送信完了画面の3つで構成されています。
11
-
11
+ **入力フォームの最初の画面のコード(companyhp6form1.php)**
12
12
  ```php
13
13
  <?php
14
14
  session_start();
@@ -155,7 +155,7 @@
155
155
  <script src="jquery-3.6.0.min.js"></script>
156
156
  </html>
157
157
  ```
158
- **●●●入力確認表示画面のPHP**
158
+ **●●●入力確認表示画面のPHP(companyhp6form2.php)**
159
159
  ```php
160
160
  <?php
161
161
  session_start();
@@ -242,7 +242,7 @@
242
242
 
243
243
  </html>
244
244
  ```
245
- **●●●PHPMailerを使った送信画面のコード**
245
+ **●●●PHPMailerを使った送信画面のコード(companyhp6form3.php)**
246
246
  ```php
247
247
  <?php
248
248
 

2

PHPMailerを使った送信画面のコードを追加しました。

2021/11/30 10:13

投稿

gujhufiugho
gujhufiugho

スコア245

title CHANGED
File without changes
body CHANGED
@@ -241,4 +241,111 @@
241
241
  </body>
242
242
 
243
243
  </html>
244
+ ```
245
+ **●●●PHPMailerを使った送信画面のコード**
246
+ ```php
247
+ <?php
248
+
249
+ // PHPMailer クラスをネーム空間にインポート
250
+ use PHPMailer\PHPMailer\PHPMailer;
251
+ use PHPMailer\PHPMailer\SMTP;
252
+ use PHPMailer\PHPMailer\Exception;
253
+
254
+
255
+
256
+ require('PHPMailer/src/PHPMailer.php');
257
+ require('PHPMailer/src/Exception.php');
258
+ require('PHPMailer/src/SMTP.php');
259
+
260
+
261
+
262
+
263
+
264
+ // 入力内容の取得・変数に格納
265
+ session_start();
266
+
267
+
268
+ if(isset($_POST['token'], $_SESSION['token']) && ($_POST['token'] === $_SESSION['token'])){
269
+ unset($_SESSION['token']);
270
+
271
+ $name = $_SESSION['name'];
272
+ $furigana = $_SESSION['furigana'];
273
+
274
+ }
275
+ // メール日本語対応
276
+ mb_language("japanese");
277
+ mb_internal_encoding("UTF-8");
278
+
279
+ // インスタンス生成
280
+ $mail = new PHPMailer(true);
281
+
282
+ // 文字エンコードを指定
283
+ $mail->CharSet = 'utf-8';
284
+
285
+ try {
286
+ // デバッグ設定
287
+ // $mail->SMTPDebug = 2; // デバッグ出力を有効化(レベルを指定)
288
+ // $mail->Debugoutput = function($str, $level) {echo "debug level $level; message: $str<br>";};
289
+
290
+ // SMTPサーバの設定
291
+ $mail->isSMTP(); // SMTPの使用宣言
292
+ $mail->Host = '●●.com'; // SMTPサーバーを指定
293
+ $mail->SMTPAuth = true; // SMTP authenticationを有効化
294
+ $mail->Username = '■■@email.com'; // SMTPサーバーのユーザ名
295
+ $mail->Password = '????'; // SMTPサーバーのパスワード
296
+ $mail->SMTPSecure = 'ssl'; // 暗号化を有効(tls or ssl)無効の場合はfalse
297
+ $mail->Port = 465; // TCPポートを指定(tlsの場合は465や587)
298
+
299
+
300
+
301
+ // メール本体
302
+ $mail->setFrom('■■@email.com', 'sana'); // 送信元メールアドレスと名前
303
+
304
+
305
+
306
+ $mail->Body = "下記の情報を受け取りました。\n内容を確認し、こちらから折り返し、ライン又はメールアドレスにてご案内させて頂きます。\n\n";
307
+ $mail->Subject = mb_encode_mimeheader('会社');
308
+
309
+ $mail->Body .= "お名前:".$name."\n";
310
+ $mail->Body .= "フリガナ:".$furigana."\n";
311
+
312
+ // 送信
313
+ $mail->send();
314
+ echo '送信済み';
315
+ } catch (Exception $e) {
316
+ echo "送信失敗: {$mail->ErrorInfo}";
317
+ }
318
+ ?>
319
+
320
+
321
+ <!DOCTYPE html>
322
+
323
+ <html>
324
+
325
+ <head>
326
+ <meta content="text/html; charset=utf-8" />
327
+ <meta name="viewport" content="width=device-width, initial-scale=1">
328
+ <title>企業のホームページ お問い合わせ 送信後の画面</title>
329
+ <link rel="stylesheet" href="companyhp6form3.css">
330
+ <style type="text/css">
331
+
332
+ </style>
333
+
334
+
335
+ </head>
336
+
337
+ <body>
338
+
339
+
340
+ </body>
341
+
342
+ </html>
343
+
344
+
345
+
346
+
347
+
348
+
349
+
350
+
244
351
  ```

1

入力フォーム→確認表示画面のPHPコードを追加しました。

2021/11/30 10:08

投稿

gujhufiugho
gujhufiugho

スコア245

title CHANGED
File without changes
body CHANGED
@@ -7,6 +7,8 @@
7
7
  javascriptでエラーメッセージは**最初の送信ボタンを押すときに発動するのみ**で良いと考えています。
8
8
  どうしたらよいでしょうか?回答よろしくお願いいたします。
9
9
 
10
+ 入力フォーム→確認表示画面→送信完了画面の3つで構成されています。
11
+
10
12
  ```php
11
13
  <?php
12
14
  session_start();
@@ -26,6 +28,8 @@
26
28
  if($furigana === "") { $errors['furigana'] ="フリガナが入力されていません。 ";
27
29
  }
28
30
 
31
+ $name = htmlspecialchars($name, ENT_QUOTES);
32
+ $furigana = htmlspecialchars($furigana, ENT_QUOTES);
29
33
 
30
34
  if(count($errors) === 0) {
31
35
 
@@ -150,4 +154,91 @@
150
154
 
151
155
  <script src="jquery-3.6.0.min.js"></script>
152
156
  </html>
157
+ ```
158
+ **●●●入力確認表示画面のPHP**
159
+ ```php
160
+ <?php
161
+ session_start();
162
+
163
+ if(isset($_SESSION['name'])){
164
+
165
+ $name = $_SESSION['name'];
166
+ $furigana = $_SESSION['furigana'];
167
+
168
+
169
+ $_SESSION['token'] = base64_encode(openssl_random_pseudo_bytes(48));
170
+
171
+ $token = htmlspecialchars($_SESSION['token'], ENT_QUOTES);
172
+
173
+ ?>
174
+
175
+
176
+ <!DOCTYPE html>
177
+
178
+ <html>
179
+
180
+ <head>
181
+ <meta content="text/html; charset=utf-8" />
182
+ <meta name="viewport" content="width=device-width, initial-scale=1">
183
+ <title>企業のホームページお問い合わせ入力確認画面</title>
184
+ <link rel="stylesheet" href="companyhp6form2.css">
185
+ <link rel="stylesheet" href="reset.css">
186
+
187
+
188
+ /* 申し込みボタンの位置 */
189
+
190
+ .auto-style1 {
191
+
192
+ text-align: center;
193
+
194
+ }
195
+
196
+ </style>
197
+
198
+
199
+ </head>
200
+
201
+ <body>
202
+
203
+ <form action ="companyhp6form3.php" method ="post">
204
+
205
+ <input type ="hidden" name ="token" value ="<?php echo $token ?>">
206
+
207
+ <div class="title">
208
+ <label class="title" for="title">お申し込み内容の確認</label>
209
+ </div>
210
+
211
+
212
+ <div class="row">
213
+ <label class="col-sm-2 control-label" for="name">名前:<small><?php echo $name; ?></small></label>
214
+ </div>
215
+ <p></p>
216
+ <p></p>
217
+ <p></p>
218
+ <div class="row">
219
+ <label class="col-sm-2 control-label" for="furigana">フリガナ:<small><?php echo $furigana; ?></small></label>
220
+ </div>
221
+
222
+
223
+
224
+
225
+ <div class="auto-style1">
226
+
227
+ <button type="submit" id="submit" name="submit" class="auto-style4">
228
+ 内容を確認して送信</button>
229
+ </div>
230
+
231
+
232
+ <div class="auto-style5"> <!--リンク文字中央配置のためのdiv-->
233
+ <p><a href="companyhp6form1.php"> &#9664;お申し込み内容を変更する</a></p>
234
+ </div><!--特殊記号三角&#9664;-->
235
+
236
+
237
+ </form>
238
+
239
+
240
+
241
+ </body>
242
+
243
+ </html>
153
244
  ```