質問編集履歴
2
文章を修正
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
質問を修正
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
php
|
1
|
+
php $_SESSIONがnullになる原因が知りたい。
|
test
CHANGED
@@ -1,147 +1,10 @@
|
|
1
|
-
提示コードですが`
|
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
|