質問編集履歴

2

文章を修正

2022/02/11 00:46

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
  参考サイト: https://teratail.com/questions/48497
5
-
5
+ 参考サイト(signup部): https://note.com/koushikagawa/n/n9c6e396e2687
6
6
  ```
7
7
  Deprecated: password_hash(): Passing null to parameter #1 ($password) of type string is deprecated in /opt/lampp/htdocs/sample/signup.php on line 89
8
8
  ```

1

質問を修正

2022/02/10 09:14

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- php ソースファイルをまたぐと$_SESSIONがnullになる原因が知りたい。
1
+ php $_SESSIONがnullになる原因が知りたい。
test CHANGED
@@ -1,147 +1,10 @@
1
- 提示コードですが`registerCheck.php`から`singup.php`にソースコードをまたぎ`signup.php`で`$_SESSION`配列を使って値取り出そうとしているのですがなぜか`NULL`になり以下の警告文が表示されます。`signup.php`の`///`コメント部内部です。`print()`関数で中身を直接表示させましたが何も表示されませんこれはなぜでしょうか?参考サイトのよに`sesson_start()`を一番上で宣言しているのですが
1
+ 提示コードですが`signup.php`で`$_SESSION`配列を使って値取り出そうとしているのですがなぜか`NULL`になり以下の警告文が表示されます。`signup.php`の`///`コメント部内部です。`print()`関数で中身を直接表示させましたが何も表示されませんこれはなぜでしょうか?参考サイトのよに`sesson_start()`を一番上で宣言しているのですが
2
2
 
3
3
 
4
4
  参考サイト: https://teratail.com/questions/48497
5
5
 
6
6
  ```
7
7
  Deprecated: password_hash(): Passing null to parameter #1 ($password) of type string is deprecated in /opt/lampp/htdocs/sample/signup.php on line 89
8
- ```
9
-
10
-
11
- #####registerCheck.php
12
- ```php
13
- <!DOCTYPE html>
14
- <html lang=ja>
15
- <head>
16
- <meta charset="utf-8">
17
-
18
- <link rel="stylesheet" href="style.css">
19
- <title>send</title>
20
- </head>
21
-
22
- <body>
23
-
24
- <?php
25
- ini_set("display_errors",1);
26
- error_reporting(E_ALL);
27
- session_start();
28
- ?>
29
-
30
- <h1 class="center"> 登録確認 </h1>
31
-
32
- <?php
33
-
34
- $dsn = 'mysql:dbname=Bulletin_Board;host=localhost;charset=utf8';
35
- $dbh = new PDO($dsn,"root","");
36
- $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
37
-
38
-
39
- if(false)
40
- {
41
- echo "メールアドレスが未入力です";
42
- }
43
- else
44
- {
45
- $mail = $_POST['mail'];
46
- if(!preg_match("/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/", $mail))
47
- {
48
- echo "メールアドレスの形式が正しくありません。";
49
- }
50
-
51
- $sql = "SELECT id FROM Account WHERE mail=:mail";
52
- $stm = $dbh->prepare($sql);
53
- $stm->bindValue(':mail',$mail,PDO::PARAM_STR);
54
- $stm->execute();
55
- $result = $stm->fetch(PDO::FETCH_ASSOC);
56
-
57
- if(isset($result["id"]) == true)
58
- //if(false)
59
- {
60
- echo "このメールアドレスは既に利用されています。";
61
- }
62
- else
63
- {
64
- $urltoken = hash('sha256',uniqid(rand(),1));
65
- $url = "signup.php?urltoken=".$urltoken;
66
-
67
- try
68
- {
69
-
70
- // $dbh = new PDO($dsn,"root","");
71
-
72
- $sql = 'INSERT INTO `preAccount`(`mail`,`token`,`enable`,`date`) VALUES (:mail,:urltoken,false,now())';
73
- $stmt = $dbh->prepare($sql);
74
- $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
75
- $stmt->bindValue(':urltoken',$urltoken,PDO::PARAM_STR);
76
- $stmt->bindValue(':mail',$mail,PDO::PARAM_STR);
77
- $stmt->execute();
78
- $dbh = null;
79
-
80
- }
81
- catch(PDOException $e)
82
- {
83
- print('Error:'.$e->getMessage());
84
- }
85
-
86
- /*
87
- $mailTo = $mail;
88
- $body = <<< EOM
89
- この度はご登録いただきありがとうございます。
90
- 24時間以内に下記のURLからご登録下さい。
91
- {$url}
92
- EOM;
93
- mb_language('ja');
94
- mb_internal_encoding('UTF-8');
95
-
96
- $companyname = "shigurechan";
97
- $registation_subject = "shigurechan";
98
- $companymail = "aoriaka00@gmail.com";
99
- //Fromヘッダーを作成
100
- $header = 'From: ' . mb_encode_mimeheader($companyname). ' <' . $companymail. '>';
101
-
102
- if(mb_send_mail($mailTo, $registation_subject, $body, $header, '-f'. $companymail)){
103
- //セッション変数を全て解除
104
- $_SESSION = array();
105
- //クッキーの削除
106
- if (isset($_COOKIE["PHPSESSID"])) {
107
- setcookie("PHPSESSID", '', time() - 1800, '/');
108
- }
109
- //セッションを破棄する
110
- session_destroy();
111
- $message = "メールをお送りしました。24時間以内にメールに記載されたURLからご登録下さい。";
112
- }
113
- */
114
- }
115
- }
116
-
117
- $message = "確認";
118
- session_write_close();
119
- ?>
120
-
121
- <h1>仮会員登録画面</h1>
122
- <?php if (isset($_POST['submit'])): ?>
123
- <!-- 登録完了画面 -->
124
- <p><?=$message?></p>
125
- <p>↓TEST用(後ほど削除):このURLが記載されたメールが届きます。</p>
126
- <a href="<?=$url?>"><?=$url?></a>
127
- <?php endif; ?>
128
- <!-- 登録画面 -->
129
-
130
-
131
- <?php if (true): ?>
132
- <form action="<?php echo $_SERVER['SCRIPT_NAME'] ?>" method="post">
133
- <p>メールアドレス:<input type="text" name="mail" size="50" value="<?php if( !empty($_POST['mail']) ){ echo $_POST['mail']; } ?>"></p>
134
- <input type="hidden" name="token" value="<?=$token?>">
135
- <input type="submit" name="submit" value="送信">
136
- </form>
137
- <?php endif; ?>
138
-
139
-
140
-
141
- </body>
142
-
143
- </html>
144
-
145
8
  ```
146
9
 
147
10
  ##### signup.php