質問編集履歴

6

コードを追記

2018/11/08 00:49

投稿

valval
valval

スコア43

test CHANGED
File without changes
test CHANGED
@@ -76,13 +76,19 @@
76
76
 
77
77
  session_start();
78
78
 
79
+ require "random.php";//乱数を作る手製ライブラリ
80
+
81
+ $sessionname=generate_password(32);
82
+
83
+ session_name($sessionname);
84
+
79
85
  session_regenerate_id(true);
80
86
 
81
87
  var_dump($_SESSION);//この時点ではセッション情報が残っている
82
88
 
83
89
 
84
90
 
85
- require "random.php";//乱数を作る手製ライブラリ
91
+
86
92
 
87
93
  $pass=generate_password(10);//10文字の乱数を作る
88
94
 

5

誤字を修正

2018/11/08 00:49

投稿

valval
valval

スコア43

test CHANGED
File without changes
test CHANGED
@@ -102,7 +102,7 @@
102
102
 
103
103
  <form action="3ページ目のURL" method="post">
104
104
 
105
- <input type="passwoerd" name="NewmailKey" size="60" maxlength="255">
105
+ <input type="password" name="NewmailKey" size="60" maxlength="255">
106
106
 
107
107
  <input type="submit" value="メールアドレスを変更">
108
108
 

4

プログラム全体の目的とコードを追記

2018/11/07 23:01

投稿

valval
valval

スコア43

test CHANGED
File without changes
test CHANGED
@@ -7,6 +7,14 @@
7
7
 
8
8
 
9
9
  $_SESSION情報の維持
10
+
11
+
12
+
13
+ プログラム全体の目的は、ユーザーが既に登録したメールアドレスを変更するとき、
14
+
15
+ 新しいメールアドレスに、ランダムな文字列を送り、これをフォームに入力させて
16
+
17
+ 新しいメールアドレスが、確かに本人の物であると確認する、というものです。
10
18
 
11
19
 
12
20
 
@@ -30,6 +38,8 @@
30
38
 
31
39
  ```php
32
40
 
41
+ <?php
42
+
33
43
  session_start();
34
44
 
35
45
  session_regenerate_id(true);
@@ -37,6 +47,22 @@
37
47
  //ログイン手続きは長いので省略
38
48
 
39
49
  $_SESSION['login']="login";
50
+
51
+ ?>
52
+
53
+ <p>変更後のメールアドレス:</p>
54
+
55
+ <form action="2ページ目のURL" method="post">
56
+
57
+ <input type="email" name="Newmail" size="60" maxlength="255">
58
+
59
+ <input type="submit" value="メールアドレスを変更">
60
+
61
+ </form>
62
+
63
+
64
+
65
+
40
66
 
41
67
  ```
42
68
 
@@ -46,17 +72,49 @@
46
72
 
47
73
  ```php
48
74
 
75
+ <?php
76
+
49
77
  session_start();
50
78
 
51
79
  session_regenerate_id(true);
52
80
 
53
81
  var_dump($_SESSION);//この時点ではセッション情報が残っている
54
82
 
83
+
84
+
85
+ require "random.php";//乱数を作る手製ライブラリ
86
+
87
+ $pass=generate_password(10);//10文字の乱数を作る
88
+
89
+
90
+
91
+ //ここで$passをデータベースにpassword_hashを通して保存
92
+
93
+
94
+
95
+ mb_send_mail($_POST['Newmail'],"メール変更キー送付 ご利用をありがとうございます。",$pass);//キーをメールで送付
96
+
97
+
98
+
99
+ ?>
100
+
101
+ <p>キーを入力</p>
102
+
103
+ <form action="3ページ目のURL" method="post">
104
+
105
+ <input type="passwoerd" name="NewmailKey" size="60" maxlength="255">
106
+
107
+ <input type="submit" value="メールアドレスを変更">
108
+
109
+ </form>
110
+
111
+
112
+
55
113
  ```
56
114
 
57
115
 
58
116
 
59
- 3ページ目(2ページ目と類似)
117
+ 3ページ目
60
118
 
61
119
  ```php
62
120
 

3

表題を訂正

2018/11/07 23:00

投稿

valval
valval

スコア43

test CHANGED
@@ -1 +1 @@
1
- phpで_SESSION配列に文字列を格納後、次の次の遷移で$_SESSIONが消える
1
+ phpで$_SESSION配列に文字列を格納後、次の次の遷移で$_SESSIONが消える
test CHANGED
File without changes

2

表題を訂正

2018/11/07 14:37

投稿

valval
valval

スコア43

test CHANGED
@@ -1 +1 @@
1
- で_SESSION配列に文字列を格納後、次の次の遷移で$_SESSIONが消える
1
+ phpで_SESSION配列に文字列を格納後、次の次の遷移で$_SESSIONが消える
test CHANGED
File without changes

1

発生している問題を整理

2018/11/07 14:36

投稿

valval
valval

スコア43

test CHANGED
@@ -1 +1 @@
1
- $_SESSION配列に文字列を格納後、次の次の遷移で$_SESSIONが消える
1
+ _SESSION配列に文字列を格納後、次の次の遷移で$_SESSIONが消える
test CHANGED
@@ -16,11 +16,11 @@
16
16
 
17
17
  ログイン直後、1ページ目にログインした旨を示す文字列を
18
18
 
19
- $_SESSION['login']に格納し、次の遷移ではこの文字列が
19
+ $_SESSION['login']に格納しました。このページからの
20
20
 
21
- $_SESSION['login']に残っていますが、その次の遷移後に
21
+ 遷移ではこの文字列が$_SESSION['login']に残っていますが、
22
22
 
23
- $_SESSIONが空になっています。
23
+ その次の遷移後に$_SESSIONが空になっています。
24
24
 
25
25
 
26
26