-
Notifications
You must be signed in to change notification settings - Fork 0
/
registration.php
159 lines (133 loc) · 5.37 KB
/
registration.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
<?php
require('function.php');
//デバッグログ
$debug_current_page = basename(__FILE__);
debugLogStart();
//=========================================
//ここからバリデーションチェック
//POST送信されているか確認
if (!empty($_POST)) {
debug('=============================================');
debug('POST送信あり・処理を開始します');
//送信内容を変数に格納
$email = $_POST['email'];
$pass = $_POST['pass'];
$pass_re = $_POST['pass_re'];
//バリデーション①未入力チェック
validRequired($email,'email');
validRequired($pass,'pass');
validRequired($pass_re,'pass_re');
//エラーがなければ次のバリデーションへ
if (empty($err_msg)) {
debug('未入力項目なし');
//バリデーション②メール・パスワード形式チェック
validMaxLen($email,'email',255);
validEmail($email,'email');
validPass($pass,'pass');
//エラーがなければ次のバリデーションへ
if (empty($err_msg)){
debug('メール・パスワード形式OK');
//メール重複、パスワード合致チェック
validMatch($pass,$pass_re,'pass_re');
validEmailDup($email);
//=========================================
//バリデーションオールクリア
//ここからDB接続
if (empty($err_msg)) {
debug('メール重複なし、パスワード合致');
debug('バリデーションクリア・DBに登録します');
try {
//SQLに必要な情報を用意
$dbh = dbConnect();
$sql = 'INSERT INTO users (email,password,login_time,create_date)
VALUES(:email,:password,:login_time,:create_date)';
$data = array(':email'=>$email,':password'=>password_hash($pass,PASSWORD_DEFAULT),
':login_time'=>date('Y-m-d H:i:s'),':create_date'=>date('Y-m-d H:i:s'));
//クエリ実行
$stmt = queryPost($dbh,$sql,$data);
if ($stmt) {
debug('DBへの登録が完了しました');
//マイページにログイン認証があるため、セッション情報を持たせる
$sesLimit = 60*60;
$_SESSION['login_date'] = time();
$_SESSION['login_limit'] = $sesLimit;
//ユーザーIDを格納
$_SESSION['user_id'] = $dbh->lastInsertId();
//問題がなければマイページへ
debug('セッション情報の設定完了:'.print_r($_SESSION,true));
debug('マイページへ遷移します');
header('Location:mypage.php');
exit;
}else {
error_log('クエリに失敗しました');
$err_msg['common'] = MSG08;
}
} catch (\Exception $e) {
error_log('エラー発生:'.$e->getMessage());
$err_msg['common'] = MSG08;
}
}
}
}
debug('処理を終了します');
}
?>
<?php
//タイトルタグの設定
$p_title = '会員登録';
//共通headタグ呼び出し
require('head.php');
//共通ヘッダー呼び出し
require('header.php');
?>
<!-- メインコンテンツ -->
<main id="registration" class="page-wrapper">
<div class="container">
<h1 class="container_title">会員登録(無料)</h1>
<div class="container_body">
<form method="post" class="module form container_body--form">
<h2 class="module_title">ご登録フォーム</h2>
<div class ="module_body">
<div class="form_errMsg">
<?php echo showErrMsg('common'); ?>
</div>
<label>
<div class="form_name">
<span class="form_label form_label--required">必須</span>
メールアドレス
</div>
<input type="text" name="email" class="form_input <?php if (!empty($err_msg['email'])) echo 'err'; ?>" value="<?php echo getFormData('email'); ?>" placeholder="example@test.com">
</label>
<div class="form_errMsg">
<?php echo showErrMsg('email'); ?>
</div>
<label>
<div class="form_name">
<span class="form_label form_label--required">必須</span>
パスワード
<span class="font-sizeS">(半角英数字6文字以上)</span>
</div>
<input type="password" name="pass" class="form_input <?php if (!empty($err_msg['pass'])) echo 'err'; ?>" value="<?php echo getFormData('pass'); ?>">
</label>
<div class="form_errMsg">
<?php echo showErrMsg('pass'); ?>
</div>
<label>
<div class="form_name">
<span class="form_label form_label--required">必須</span>
確認用 パスワード再入力
</div>
<input type="password" name="pass_re" class="form_input <?php if (!empty($err_msg['pass_re'])) echo 'err'; ?>" value="<?php echo getFormData('pass_re'); ?>">
</label>
<div class="form_errMsg">
<?php echo showErrMsg('pass_re'); ?>
</div>
<button type="submit" class="btn btn--submit">登録する</button>
<p class="form_notion"><a href="login.php" class="--hoverLine">> 登録済みの方はこちら</a></p>
</div>
</form>
</div>
</div>
</main>
<!-- 共通フッター呼び出し -->
<?php require('footer.php'); ?>