質問編集履歴
4
title
CHANGED
File without changes
|
body
CHANGED
File without changes
|
3
提示した3つのコードにタイトル名を追加しました。
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を使った送信画面のコードを追加しました。
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コードを追加しました。
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"> ◀お申し込み内容を変更する</a></p>
|
234
|
+
</div><!--特殊記号三角◀-->
|
235
|
+
|
236
|
+
|
237
|
+
</form>
|
238
|
+
|
239
|
+
|
240
|
+
|
241
|
+
</body>
|
242
|
+
|
243
|
+
</html>
|
153
244
|
```
|