質問編集履歴

5

追記

2024/07/26 10:21

投稿

BreadMan
BreadMan

スコア2

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

追記

2024/07/26 07:37

投稿

BreadMan
BreadMan

スコア2

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
- ・ローカルでの開発環境(XAMPP,VSCode,XDebug)でテストした場合
250
+ ・ローカル環境(xampp)でした結果
248
- どのメールアドレスに対して連続してテストしても正常にメールが送信されます。
249
- (ローカルで開発は別の人間がやっていたの、確認が遅れました)
251
+ php7.4.33(本番環境),php8.1.12(最新環境)どちらも正常に動作した

3

コード修正

2024/07/26 01:59

投稿

BreadMan
BreadMan

スコア2

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

コード追加

2024/07/26 01:51

投稿

BreadMan
BreadMan

スコア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

ローカルの開発環境について追記

2024/07/26 01:13

投稿

BreadMan
BreadMan

スコア2

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
+ (ローカルでの開発は別の人間がやっていたので、確認が遅れました)