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

質問編集履歴

1

INSERT, CREATE文 追記 アクセスコード 記載

2018/09/03 09:24

投稿

Roo
Roo

スコア55

title CHANGED
File without changes
body CHANGED
@@ -1,8 +1,8 @@
1
1
  ログイン日時をテーブルのカラムに保存し
2
2
  ログイン時に(最終ログイン日時)としてMy pageに表示させたいです
3
3
 
4
- 名前:sdate データ型:datetime
5
4
 
5
+
6
6
  <?php
7
7
  session_start();
8
8
 
@@ -29,4 +29,80 @@
29
29
  </html>
30
30
 
31
31
  //ログイン日時設定の場所にどう記載すれば宜しいでしょうか?
32
- 宜しくお願いいたします。
32
+ 宜しくお願いいたします。
33
+
34
+ 保存先のDB CREATE,INSERT
35
+ CREATE TABLE userdata(
36
+ id int NOT NULL PRIMARY KEY,
37
+ name varchar NOTNULL
38
+ password varchar NOTNULL
39
+ sdate  datetime   NOTNULL
40
+
41
+ INSERT INTO userdata (
42
+ name,
43
+ passwrod,
44
+ adate
45
+ )
46
+ VALUES
47
+ ( 'ma0808'
48
+ 'Ma0808'
49
+ '0:%Y-%m-%d %H:%M:%S'
50
+ )
51
+
52
+
53
+ 下記のコードからPOSTされたものが正しい場合
54
+ ログイン日時をDBに保存、取得したいです。
55
+
56
+
57
+
58
+ f (isset($_POST["login"])) {
59
+ // 1. ユーザIDの入力チェック
60
+ if (empty($_POST["userid"])) { //
61
+
62
+ $errorMessage = '※UserIDまたはPasswordが間違っています。';
63
+ } else if (empty($_POST["password"])) {
64
+ $errorMessage = '※UserIDまたはPasswordが間違っています。';
65
+ }
66
+
67
+ if (!empty($_POST["userid"]) && !empty($_POST["password"])) {
68
+ $userid = $_POST["userid"];
69
+
70
+
71
+ $dsn = sprintf('mysql: host=%s; dbname=%s; charset=utf8', $db['host'], $db['dbname']);
72
+
73
+
74
+ try {
75
+ $pdo = new PDO($dsn, $db['user'], $db['pass'], array(PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION));
76
+
77
+ $stmt = $pdo->prepare('SELECT * FROM userdata WHERE name = ?');
78
+ $stmt->execute(array($userid));
79
+
80
+ $password = $_POST["password"];
81
+
82
+ if ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
83
+ // if (password_verify($password, $row['password'])) {
84
+ if ($userid == $row['name'] || $password == $row['password']) {
85
+ session_regenerate_id(true);
86
+
87
+
88
+ $id = $row['id'];
89
+ $sql = "SELECT * FROM userdata WHERE id = $id";
90
+ $stmt = $pdo->query($sql);
91
+ foreach ($stmt as $row) {
92
+ $row['name'];
93
+ }
94
+ $_SESSION["NAME"] = $row['name'];
95
+ header("location: my.php");
96
+ exit();
97
+ } else {
98
+ $errorMessage = '※UserIDまたはPasswordが間違っています。';
99
+
100
+ } catch (PDOException $e) {
101
+ $errorMessage = 'データベースエラー';
102
+ //$errorMessage = $sql;
103
+ // $e->getMessage() でエラー内容を参照可能(デバッグ時のみ表示)
104
+ // echo $e->getMessage();
105
+ }
106
+ }
107
+ }
108
+ ?>