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

質問編集履歴

6

文法修正

2020/07/20 06:44

投稿

meli
meli

スコア312

title CHANGED
File without changes
body CHANGED
@@ -31,7 +31,17 @@
31
31
 
32
32
  動的URL生成:input.php
33
33
  ```input.php
34
+ // 規定の組み合わせからランダムな文字列を返却
35
+ function getRndStr() {
36
+ var str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
37
+ var len = 8;
38
+ var ret = "";
39
+ for (var i = 0; i < len; i++) {
40
+ ret += str.charAt(Math.floor(Math.random() * str.length));
41
+ }
42
+ return ret;
43
+ }
34
- // submitボタン処理
44
+ // submitボタン処理
35
45
  function sendConfirm() {
36
46
  if (checkRequire() !== true) {
37
47
  return false;

5

追記

2020/07/20 06:44

投稿

meli
meli

スコア312

title CHANGED
File without changes
body CHANGED
@@ -16,6 +16,8 @@
16
16
  (そもそもthanks.phpから数秒後にトップページに遷移される)
17
17
 
18
18
 
19
+
20
+ メール送信判定:confirm.php
19
21
  ```confirm.php
20
22
  // メール取得済み&ここまででエラーがなければメール送信フラグ取得
21
23
  // confirmページから下記Valueが渡されていたらメール送信処理へ進んでよい。
@@ -26,6 +28,8 @@
26
28
  ```
27
29
 
28
30
 
31
+
32
+ 動的URL生成:input.php
29
33
  ```input.php
30
34
  // submitボタン処理
31
35
  function sendConfirm() {

4

誤字

2020/07/20 06:43

投稿

meli
meli

スコア312

title CHANGED
File without changes
body CHANGED
@@ -15,8 +15,8 @@
15
15
  ブラウザの更新をしても送信されない仕様なので、ページを開きなおしたわけでもなさそうです。
16
16
  (そもそもthanks.phpから数秒後にトップページに遷移される)
17
17
 
18
- メール送信はここでconfirm.phpの下記で行っています。
18
+
19
- ```ここに言語を入力
19
+ ```confirm.php
20
20
  // メール取得済み&ここまででエラーがなければメール送信フラグ取得
21
21
  // confirmページから下記Valueが渡されていたらメール送信処理へ進んでよい。
22
22
  if (empty($error_msg) && !empty($post_mail)) {
@@ -25,8 +25,8 @@
25
25
  }
26
26
  ```
27
27
 
28
+
28
- input.php
29
+ ```input.php
29
- ```ここに言語を入力
30
30
  // submitボタン処理
31
31
  function sendConfirm() {
32
32
  if (checkRequire() !== true) {

3

追記

2020/07/20 06:43

投稿

meli
meli

スコア312

title CHANGED
File without changes
body CHANGED
@@ -25,7 +25,22 @@
25
25
  }
26
26
  ```
27
27
 
28
+ input.php
29
+ ```ここに言語を入力
30
+ // submitボタン処理
31
+ function sendConfirm() {
32
+ if (checkRequire() !== true) {
33
+ return false;
34
+ }
28
35
 
36
+ // 飛び先キャッシュ回避
37
+ document.main_form.action = "confirm.php?rand_str=" + getRndStr();
29
38
 
39
+ return true;
40
+ }
41
+ ```
42
+
43
+
44
+
30
45
  原因の切り分けを行いたいのですが、テスト環境では再現できず。
31
46
  confirm.php?rand_str=ABC123456を複数回開くにはどういった動作が必要でしょうか?

2

情報追記

2020/07/20 06:42

投稿

meli
meli

スコア312

title CHANGED
File without changes
body CHANGED
@@ -6,7 +6,9 @@
6
6
  完了:thanks.php
7
7
  と遷移します。
8
8
 
9
- confim.phpには末尾にランダムの数字を割り振っており、タブの複製やURLのコピーをしても入力情報は消える仕様としております。
9
+ confim.phpには末尾にランダムの数字を割り振っております。
10
+ SESSIONを使用し、ブラウザバックを禁止しております。
11
+ 検証端末では、タブの複製やURLのコピーをしても入力情報は消えます。
10
12
  例)https://www.XXX.com/confirm.php?rand_str=ABC123456
11
13
 
12
14
  しかし、連日同じメールが何度も届くことがあります。
@@ -15,35 +17,12 @@
15
17
 
16
18
  メール送信はここでconfirm.phpの下記で行っています。
17
19
  ```ここに言語を入力
18
- // MIMEンコドしつつメール送信
20
+ // メール取得済み&ここまででがなければメール送信フラグ取得
19
- function send_mail($src_subject, $src_body, $from_name, $from_addr, $to_addr, $bcc_addr="")
20
- {
21
- // mb_language('ja');
22
- // mb_internal_encoding("ISO-2022-JP-MS"); // ここからISO-2022-JP-MS
23
- // $subject = mb_encode_mimeheader($src_subject, 'ISO-2022-JP-MS', 'UTF-8');
24
- // $body = mb_convert_encoding($src_body, 'ISO-2022-JP-MS', 'UTF-8');
25
- // $add_headers = "Content-Type: text/plain; charset=ISO-2022-JP"
26
- // . "\r\nFrom:\"" . mb_encode_mimeheader($from_name) . "\" <" . $from_addr . ">"
27
- // . "\r\nReply-To: " . $from_addr;
28
- // 2018/07/25 Mod 電話番号の「±」やnameの「ö」などが文字化けするので対策
29
- // bodyToAdminやbodyToUserでJIS変換せずmail関数にすこと
21
+ // confirmページから下記Valueがされていたらメール送信処理へ進んでよい
30
-
31
- mb_language('ja');
32
- mb_internal_encoding('UTF-8');
22
+ if (empty($error_msg) && !empty($post_mail)) {
33
- $subject = mb_encode_mimeheader($src_subject, 'UTF-8', 'UTF-8');
34
- $body = $src_body;
35
- $add_headers = "Content-Type: text/plain; charset=UTF-8"
36
- . "\r\nFrom:\"" . mb_encode_mimeheader($from_name, 'UTF-8', 'UTF-8')
23
+ if (!empty($_POST['HiddenMailSendOK']) && $_POST['HiddenMailSendOK'] === "mail_is_ok") {
37
- . "\" <" . $from_addr . ">"
38
- . "\r\nReply-To: " . $from_addr;
39
-
40
- if (!empty($bcc_addr)) {
24
+ $sendmail = 1;
41
- $add_headers .= "\r\n" . 'Bcc: ' . $bcc_addr;
42
25
  }
43
-
44
- $ret = mail($to_addr, $subject, $body, $add_headers, "-f {$to_addr}");
45
- return $ret;
46
- }
47
26
  ```
48
27
 
49
28
 

1

修正

2020/07/20 06:37

投稿

meli
meli

スコア312

title CHANGED
@@ -1,1 +1,1 @@
1
- 二重sbmit対策をていフォームでメールの二重送信が発生する
1
+ 動的に生成た数字を埋め込んだURLは何度も開け
body CHANGED
File without changes