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

質問編集履歴

3

情報の補足

2020/12/27 08:50

投稿

kotouharuto
kotouharuto

スコア38

title CHANGED
File without changes
body CHANGED
@@ -249,6 +249,9 @@
249
249
  また、ユーザー管理のdbは以下の画像のようになっています。(usersテーブル)
250
250
  ![イメージ説明](c88f4dca75b90a7faaedcab817af44fb.jpeg)
251
251
 
252
+ テーブルの中身はこのようになっています。(テーブル内のデータ)
253
+ ![イメージ説明](523117691db8c7fcedbaa35d2f1d651a.jpeg)
254
+
252
255
  ---
253
256
 
254
257
  以上です。

2

情報の補足

2020/12/27 08:50

投稿

kotouharuto
kotouharuto

スコア38

title CHANGED
File without changes
body CHANGED
@@ -129,11 +129,63 @@
129
129
     </body>
130
130
  ```
131
131
 
132
+ ```php
133
+ <?php
134
+ // login_exec.php(ログイン機能)
135
+ require_once "../libs/init.php";
136
+
137
+ function Login() {
138
+ // エラーがあったら表示
139
+ if (isset($_GET['error'])) {
140
+ echo $_GET['error'];
141
+ }
142
+
143
+ // ログインしていない場合
144
+ $email = $_POST['email'];
145
+ $_SESSION['email'] = $_POST['email'];
146
+ $password = $_POST['password'];
147
+
148
+
149
+ // //DB内でPOSTされたメールアドレスを検索
150
+ try {
151
+ $pdo = db_connect();
152
+ $row = Search_Email($pdo, $email);
153
+ } catch(\Exception $e) {
154
+ echo $e->getMessage();
155
+ }
156
+
157
+ //emailがDB内に存在しているか確認
158
+ if(!isset($row['email'])) {
159
+ header('Location: login.php?error=メールアドレス又はパスワードが間違っています。');
160
+ return false;
161
+ }
162
+
163
+ //パスワード確認後にsessionにメールアドレスを渡す
164
+ if(password_verify($password, $row['password'])) {
165
+ session_regenerate_id(true); //session_idを新しく生成し、置き換える
166
+ $_SESSION['user_id'] = $row['user_id'];
167
+ $_SESSION['USERNAME'] = $row['username'];
168
+ $user_id = $_SESSION['user_id'];
169
+ // ログインに成功したらcalendarphpリダイレクト
170
+ header("Location: calendar.php");
171
+ } else {
172
+ // ログインに失敗したらlogin.phpにリダイレクト
173
+ header("Location: login.php?error=メールアドレス又はパスワードが間違っています。");
174
+ return false;
175
+ }
176
+ }
177
+
178
+ Login();
179
+
180
+
181
+ ```
182
+
132
183
  # 試したこと
133
184
  - データをデータベースに挿入する時点でuser_idを持たせる
134
185
  - データベースからデータを検索する時に、条件として、WHERE user_id = :user_idを指定する
135
186
 
136
187
  # 補足情報
188
+ chartテーブルです。
137
189
  ```
138
190
  -- phpMyAdmin SQL Dump
139
191
  -- version 4.9.3
@@ -193,6 +245,10 @@
193
245
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=45;
194
246
 
195
247
  ```
248
+
249
+ また、ユーザー管理のdbは以下の画像のようになっています。(usersテーブル)
250
+ ![イメージ説明](c88f4dca75b90a7faaedcab817af44fb.jpeg)
251
+
196
252
  ---
197
253
 
198
254
  以上です。

1

情報の補足

2020/12/27 06:34

投稿

kotouharuto
kotouharuto

スコア38

title CHANGED
File without changes
body CHANGED
@@ -133,6 +133,66 @@
133
133
  - データをデータベースに挿入する時点でuser_idを持たせる
134
134
  - データベースからデータを検索する時に、条件として、WHERE user_id = :user_idを指定する
135
135
 
136
+ # 補足情報
137
+ ```
138
+ -- phpMyAdmin SQL Dump
139
+ -- version 4.9.3
140
+ -- https://www.phpmyadmin.net/
141
+ --
142
+ -- ホスト: localhost:8889
143
+ -- 生成日時: 2020 年 12 月 27 日 06:25
144
+ -- サーバのバージョン: 5.7.26
145
+ -- PHP のバージョン: 7.4.2
146
+
147
+ SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
148
+ SET time_zone = "+00:00";
149
+
150
+ --
151
+ -- データベース: `tr_ng`
152
+ --
153
+
154
+ -- --------------------------------------------------------
155
+
156
+ --
157
+ -- テーブルの構造 `chart`
158
+ --
159
+
160
+ CREATE TABLE `chart` (
161
+ `user_id` int(11) NOT NULL,
162
+ `id` int(11) NOT NULL,
163
+ `date` varchar(100) NOT NULL,
164
+ `weight` varchar(100) NOT NULL
165
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
166
+
167
+ --
168
+ -- テーブルのデータのダンプ `chart`
169
+ --
170
+
171
+ INSERT INTO `chart` (`user_id`, `id`, `date`, `weight`) VALUES
172
+ (1, 43, '2020-12-27', '64'),
173
+ (1, 44, '2020-12-27', '63');
174
+
175
+ --
176
+ -- ダンプしたテーブルのインデックス
177
+ --
178
+
179
+ --
180
+ -- テーブルのインデックス `chart`
181
+ --
182
+ ALTER TABLE `chart`
183
+ ADD PRIMARY KEY (`id`);
184
+
185
+ --
186
+ -- ダンプしたテーブルのAUTO_INCREMENT
187
+ --
188
+
189
+ --
190
+ -- テーブルのAUTO_INCREMENT `chart`
191
+ --
192
+ ALTER TABLE `chart`
193
+ MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=45;
194
+
195
+ ```
136
196
  ---
137
197
 
138
198
  以上です。