質問編集履歴
5
追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -246,6 +246,16 @@
|
|
246
246
|
|
247
247
|
わかっていること
|
248
248
|
・lolipopサーバー(開発者個人契約)では正常に動作した
|
249
|
+
|
249
250
|
新たにわかったこと
|
250
251
|
・ローカル環境(xampp)で試した結果、
|
251
252
|
php7.4.33(本番環境),php8.1.12(最新環境)のどちらでも正常に動作した。
|
253
|
+
|
254
|
+
・$user_mail->SMTPDebug=3; を有効にした上で、フォームを開いたウィンドウを3つ用意し、
|
255
|
+
aboutmy.emailのアドレス3つに対して順番に送信テストを行ったところ、
|
256
|
+
本番環境では出力された結果の3つとも、
|
257
|
+
CLIENT -> SERVER: RCPT TO:(1つ目のメールアドレス)
|
258
|
+
となっていた。
|
259
|
+
対して、xamppのローカル環境で実行したところ、
|
260
|
+
各ウィンドウとも正常な動作をした。
|
261
|
+
(ブラウザはChromeで、ウィンドウはそれぞれ別プロファイルを使用)
|
4
追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -243,7 +243,9 @@
|
|
243
243
|
よろしくお願いします。
|
244
244
|
|
245
245
|
[07/26] 追記
|
246
|
+
|
247
|
+
わかっていること
|
248
|
+
・lolipopサーバー(開発者個人契約)では正常に動作した
|
246
|
-
わかったこと
|
249
|
+
新たにわかったこと
|
247
|
-
・ローカル
|
250
|
+
・ローカル環境(xampp)で試した結果、
|
248
|
-
どのメールアドレスに対して連続してテストしても正常にメールが送信されます。
|
249
|
-
(
|
251
|
+
php7.4.33(本番環境),php8.1.12(最新環境)のどちらでも正常に動作した。
|
3
コード修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -117,7 +117,7 @@
|
|
117
117
|
$_SESSION = array();
|
118
118
|
session_destroy();
|
119
119
|
?>
|
120
|
-
<HPのフッター>
|
120
|
+
<HPのフッター>(省略)
|
121
121
|
```
|
122
122
|
|
123
123
|
また、フォーム部分については以下のコードです。
|
@@ -133,6 +133,8 @@
|
|
133
133
|
$message = isset($_SESSION["message"]) ? $_SESSION["message"] : "";
|
134
134
|
?>
|
135
135
|
|
136
|
+
<HPのヘッダーメニュー>(省略)
|
137
|
+
|
136
138
|
<form action="./contactphp.php" method="post">
|
137
139
|
<dl class="form_area">
|
138
140
|
<dt class="repuired">お名前</dt>
|
@@ -144,6 +146,7 @@
|
|
144
146
|
<p class="kakunin">お間違いがなければ[送信]ボタンを押してください。</p>
|
145
147
|
<input type="submit" value="送 信" class="btn">
|
146
148
|
</form>
|
149
|
+
<HPのフッター>(省略)
|
147
150
|
|
148
151
|
```
|
149
152
|
|
@@ -152,6 +155,8 @@
|
|
152
155
|
<?php
|
153
156
|
session_start();
|
154
157
|
?>
|
158
|
+
|
159
|
+
<HPのヘッダーメニュー>(省略)
|
155
160
|
|
156
161
|
<?php
|
157
162
|
|
@@ -210,7 +215,7 @@
|
|
210
215
|
}
|
211
216
|
|
212
217
|
?>
|
213
|
-
|
218
|
+
<HPのフッター>(省略)
|
214
219
|
|
215
220
|
```
|
216
221
|
|
2
コード追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -20,7 +20,15 @@
|
|
20
20
|
|
21
21
|
### コード
|
22
22
|
メール送信コードは以下です。(抜粋)
|
23
|
+
(send.php)
|
23
24
|
```php
|
25
|
+
|
26
|
+
<?php
|
27
|
+
session_start();
|
28
|
+
?>
|
29
|
+
|
30
|
+
<HPのヘッダーメニュー>(省略)
|
31
|
+
|
24
32
|
<?php
|
25
33
|
//------------------------------
|
26
34
|
//PHPMailerをインポート
|
@@ -66,6 +74,7 @@
|
|
66
74
|
$body = 'お問い合わせ日時 : '.$time ."\r\n";
|
67
75
|
$body .= 'メールアドレス : '.$email ."\r\n";
|
68
76
|
$body .= 'お問い合わせ内容 : '.$message;
|
77
|
+
//他情報は記載省略
|
69
78
|
|
70
79
|
//メールインスタンス生成(引数trueでException有効化)
|
71
80
|
$user_mail = new PHPMailer(true);
|
@@ -105,7 +114,103 @@
|
|
105
114
|
|
106
115
|
$user_mail->send();
|
107
116
|
|
117
|
+
$_SESSION = array();
|
118
|
+
session_destroy();
|
119
|
+
?>
|
120
|
+
<HPのフッター>
|
121
|
+
```
|
122
|
+
|
123
|
+
また、フォーム部分については以下のコードです。
|
124
|
+
(contact.php)
|
125
|
+
```PHP
|
126
|
+
<?php
|
127
|
+
session_start();
|
128
|
+
$namae = isset($_SESSION["namae"]) ? $_SESSION["namae"] : "";
|
129
|
+
$tenmei = isset($_SESSION["tenmei"]) ? $_SESSION["tenmei"] : "";
|
130
|
+
$email = isset($_SESSION["email"]) ? $_SESSION["email"] : "";
|
131
|
+
$genre = isset($_SESSION["genre"]) ? $_SESSION["genre"] : "";
|
132
|
+
$radio = isset($_SESSION["radio"]) ? $_SESSION["radio"] : "";
|
133
|
+
$message = isset($_SESSION["message"]) ? $_SESSION["message"] : "";
|
134
|
+
?>
|
135
|
+
|
136
|
+
<form action="./contactphp.php" method="post">
|
137
|
+
<dl class="form_area">
|
138
|
+
<dt class="repuired">お名前</dt>
|
139
|
+
<dd><input type="text" name="namae" required value="<?php echo $namae; ?>"></dd>
|
140
|
+
<dt class="repuired">メールアドレス</dt>
|
141
|
+
<dd><input type="email" name="email" required value="<?php echo $email; ?>"></dd>
|
142
|
+
(以下フォーム内容省略)
|
143
|
+
</dl>
|
144
|
+
<p class="kakunin">お間違いがなければ[送信]ボタンを押してください。</p>
|
145
|
+
<input type="submit" value="送 信" class="btn">
|
146
|
+
</form>
|
147
|
+
|
148
|
+
```
|
149
|
+
|
150
|
+
(contactphp.php)
|
151
|
+
```php
|
152
|
+
<?php
|
153
|
+
session_start();
|
154
|
+
?>
|
155
|
+
|
156
|
+
<?php
|
157
|
+
|
158
|
+
$namae = htmlspecialchars($_POST["namae"],ENT_QUOTES);
|
159
|
+
$tenmei = htmlspecialchars($_POST["tenmei"],ENT_QUOTES);
|
160
|
+
$email = htmlspecialchars($_POST["email"],ENT_QUOTES);
|
161
|
+
$genre = htmlspecialchars($_POST["genre"],ENT_QUOTES);
|
162
|
+
$radio = htmlspecialchars($_POST["radio"],ENT_QUOTES);
|
163
|
+
$message = htmlspecialchars($_POST["message"],ENT_QUOTES);
|
164
|
+
$message_view = nl2br($message);
|
165
|
+
|
166
|
+
// 入力内容のチェック
|
108
|
-
//
|
167
|
+
// 名前のチェック
|
168
|
+
if(strlen(trim($namae)) == 0) {//ゼロバイト(何も入力されていなかったら)
|
169
|
+
$error[] = "名前をご入力ください";
|
170
|
+
}
|
171
|
+
//メールアドレスのチェック
|
172
|
+
if(strlen(trim($email)) == 0){//ゼロバイト(何も入力されていなかったら)
|
173
|
+
$error[] = "メールアドレスをご入力ください。";
|
174
|
+
}
|
175
|
+
else{//入っていたとしても下記の形式とマッチしていなかったら"メールの形式が正しくないと表示される"
|
176
|
+
if(!preg_match("/^[a-zA-Z0-9.!#$%&'*+\/=?^_'{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9]+)+$/",$email)){
|
177
|
+
$error[]="メールの形式が正しくありません。";
|
178
|
+
}
|
179
|
+
}
|
180
|
+
|
181
|
+
//エラー表示を出すコード
|
182
|
+
if(isset($error)){//エラーを表示させてほしい
|
183
|
+
echo "<ul>\n";//Ulで
|
184
|
+
|
185
|
+
foreach($error as $e) {//エラーを$eとして
|
186
|
+
echo "<li>{$e}</li>\n";
|
187
|
+
}
|
188
|
+
echo "</ul>\n";
|
189
|
+
}
|
190
|
+
|
191
|
+
|
192
|
+
echo <<< END
|
193
|
+
|
194
|
+
<table>
|
195
|
+
<tr><th>お名前</th><td>{$namae}</td></tr>
|
196
|
+
<tr><th>メールアドレス</th><td>{$email}</td></tr>
|
197
|
+
<tr><th>お問い合わせ内容</th><td>{$message_view}</td></tr>
|
198
|
+
(他省略)
|
199
|
+
</table>
|
200
|
+
|
201
|
+
END;
|
202
|
+
|
203
|
+
?>
|
204
|
+
|
205
|
+
<a href="./contact.php" class="php_btn">戻る</a>
|
206
|
+
<?php
|
207
|
+
|
208
|
+
if(!isset($error)){//エラーがなければこのボタンを表示させる
|
209
|
+
echo " <a href=\"./send.php\" class=\"php_btn\">送信する</a>\n ";
|
210
|
+
}
|
211
|
+
|
212
|
+
?>
|
213
|
+
|
109
214
|
|
110
215
|
```
|
111
216
|
|
1
ローカルの開発環境について追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -131,3 +131,9 @@
|
|
131
131
|
|
132
132
|
以上、お知恵を拝借したいです。
|
133
133
|
よろしくお願いします。
|
134
|
+
|
135
|
+
[07/26] 追記
|
136
|
+
わかったこと
|
137
|
+
・ローカルでの開発環境(XAMPP,VSCode,XDebug)でテストした場合、
|
138
|
+
どのメールアドレスに対して連続してテストしても正常にメールが送信されます。
|
139
|
+
(ローカルでの開発は別の人間がやっていたので、確認が遅れました)
|