質問編集履歴

4

コード

2017/12/19 06:46

投稿

mochio_o7
mochio_o7

スコア17

test CHANGED
File without changes
test CHANGED
@@ -14,7 +14,11 @@
14
14
 
15
15
 
16
16
 
17
+ 〈新規登録〉
18
+
19
+
20
+
17
- ```php
21
+ ```kadai31.php
18
22
 
19
23
 
20
24
 
@@ -104,7 +108,7 @@
104
108
 
105
109
 
106
110
 
107
- ```HTML
111
+ ```kadai3.php
108
112
 
109
113
 
110
114
 
@@ -178,11 +182,15 @@
178
182
 
179
183
 
180
184
 
181
-
185
+ 〈ログイン〉
182
-
183
-
184
-
186
+
187
+
188
+
189
+
190
+
185
- ```php
191
+ ```kadai.php
192
+
193
+
186
194
 
187
195
  <?php
188
196
 
@@ -238,7 +246,7 @@
238
246
 
239
247
 
240
248
 
241
- $login_url = "kadai3_keiziban.php";
249
+ $login_url = "keiziban.php";
242
250
 
243
251
  header("Location: {$login_url}");
244
252
 
@@ -276,7 +284,7 @@
276
284
 
277
285
 
278
286
 
279
- ```html
287
+ ```
280
288
 
281
289
 
282
290
 
@@ -306,7 +314,7 @@
306
314
 
307
315
 
308
316
 
309
- <form action="kadai300.php" method="POST">
317
+ <form action="kadai.php" method="POST">
310
318
 
311
319
 
312
320
 
@@ -346,7 +354,7 @@
346
354
 
347
355
 
348
356
 
349
- <form action="kadai3_form.php">
357
+ <form action="kadai3.php">
350
358
 
351
359
  <fieldset>
352
360
 

3

コード

2017/12/19 06:46

投稿

mochio_o7
mochio_o7

スコア17

test CHANGED
File without changes
test CHANGED
@@ -16,8 +16,176 @@
16
16
 
17
17
  ```php
18
18
 
19
+
20
+
19
21
  <?php
20
22
 
23
+
24
+
25
+ if(isset($_POST["name"],$_POST["pass"])){
26
+
27
+
28
+
29
+
30
+
31
+ $dsn = '';
32
+
33
+ $user = '';
34
+
35
+ $password = '';
36
+
37
+
38
+
39
+ $pdo = new PDO($dsn, $user, $password);
40
+
41
+
42
+
43
+
44
+
45
+ $sql = 'CREATE TABLE articles
46
+
47
+ (
48
+
49
+ number INT(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
50
+
51
+ name VARCHAR(100) NOT NULL,
52
+
53
+ pass VARCHAR(100) NOT NULL,
54
+
55
+ id VARCHAR(100) NOT NULL
56
+
57
+ )';
58
+
59
+
60
+
61
+ $result = $pdo->query($sql);
62
+
63
+
64
+
65
+
66
+
67
+
68
+
69
+ $name = ($_POST["name"]);
70
+
71
+ $pass = ($_POST["pass"]);
72
+
73
+ $id = uniqid();
74
+
75
+
76
+
77
+
78
+
79
+ $stm = $pdo -> prepare("INSERT INTO articles (number,name,pass,id) VALUES ('', :name, :pass, :id)");
80
+
81
+ $stm -> bindParam(':name', $name, PDO::PARAM_STR);
82
+
83
+ $stm -> bindParam(':pass', $pass, PDO::PARAM_STR);
84
+
85
+ $stm -> bindParam(':id', $id, PDO::PARAM_STR);
86
+
87
+ $stm -> execute();
88
+
89
+
90
+
91
+ }
92
+
93
+
94
+
95
+ ?>
96
+
97
+
98
+
99
+
100
+
101
+ ```
102
+
103
+
104
+
105
+
106
+
107
+ ```HTML
108
+
109
+
110
+
111
+ <html>
112
+
113
+ <head>
114
+
115
+ <title>登録フォーム</title>
116
+
117
+ </head>
118
+
119
+ <body>
120
+
121
+
122
+
123
+
124
+
125
+ <p><h2>登録フォーム</h2></p>
126
+
127
+
128
+
129
+ <fieldset>
130
+
131
+
132
+
133
+ <p><h4>名前とパスワードを記入してください</h4></p>
134
+
135
+ <form action="kadai31.php" method="post">
136
+
137
+ <dl>
138
+
139
+ <dt>名前</dt>
140
+
141
+ <dd>
142
+
143
+ <input type="text" name="name">
144
+
145
+ </dd>
146
+
147
+ <dt>パスワード</dt>
148
+
149
+ <dd>
150
+
151
+ <input type="password" name="pass">
152
+
153
+ </dd>
154
+
155
+ </dl>
156
+
157
+ <div><dd><input type="submit" value="登録"></div></dd>
158
+
159
+
160
+
161
+ </fieldset>
162
+
163
+
164
+
165
+ </form>
166
+
167
+ </body>
168
+
169
+ </html>
170
+
171
+
172
+
173
+
174
+
175
+ ```
176
+
177
+
178
+
179
+
180
+
181
+
182
+
183
+
184
+
185
+ ```php
186
+
187
+ <?php
188
+
21
189
  session_start();
22
190
 
23
191
 
@@ -46,11 +214,11 @@
46
214
 
47
215
 
48
216
 
49
- $dsn = 'mysql:dbname=co_306_it_3919_com;host=localhost';
217
+ $dsn = '';
50
-
218
+
51
- $user = 'co-306.it.3919.com';
219
+ $user = '';
52
-
220
+
53
- $pas = 'GVyfuCY';
221
+ $pas = '';
54
222
 
55
223
 
56
224
 

2

コード

2017/12/19 06:42

投稿

mochio_o7
mochio_o7

スコア17

test CHANGED
File without changes
test CHANGED
@@ -8,11 +8,7 @@
8
8
 
9
9
 
10
10
 
11
- サーバーのphpバージョンが5.2.4で、password_hash関数やpassword_verify関数に対応していないために、パスワードをハッシュ化するのにcrypt関数を使用しました。
12
-
13
-
14
-
15
- 調べているのですが、password_hash関数やpassword_verify関数を使用したログイン機能ばかりで、crypt関数使用したログイン機能作り方分かりません。
11
+ ログイン機能を作成したです、できません。
16
12
 
17
13
 
18
14
 
@@ -22,148 +18,92 @@
22
18
 
23
19
  <?php
24
20
 
25
-
26
-
27
- // セッション開始
28
-
29
21
  session_start();
30
22
 
31
23
 
32
24
 
33
- $db['host'] = 'localhost'; // DBサーバのURL
34
-
35
- $db['user'] = 'username'; // ユーザー名
36
-
37
- $db['pass'] = 'passssss'; // ユーザー名のパスワード
38
-
39
- $db['dbname'] = 'dbname'; // データベース名
40
-
41
-
42
-
43
-
44
-
45
- // エラーメッセージの初期化
46
-
47
25
  $errorMessage = "";
48
26
 
49
27
 
50
28
 
51
- // ログインボタンが押された場合
52
-
53
29
  if (isset($_POST["login"])) {
54
30
 
55
31
 
56
32
 
57
- // 1. ユーザIDの入力チェック
58
-
59
- if (empty($_POST["userid"])) {
60
-
61
- $errorMessage = 'ユーザーIDが未入力です。';
62
-
63
- } else if (empty($_POST["password"])) {
64
-
65
- $errorMessage = 'パスワードが未入力です。';
66
-
67
- }
68
-
69
-
70
-
71
- if (!empty($_POST["userid"]) && !empty($_POST["password"])) {
72
-
73
-
74
-
75
- // 入力したユーザIDを格納
76
-
77
- $userid = $_POST["userid"];
78
-
79
-
80
-
81
- // 2. ユーザIDとパスワードが入力されていたら認証する
82
-
83
- $dsn = sprintf('mysql: host=%s; dbname=%s; charset=utf8', $db['host'], $db['dbname']);
84
-
85
-
86
-
87
- // 3. エラー処理
88
-
89
- try {
90
-
91
- $pdo = new PDO($dsn, $db['user'], $db['pass'], array(PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION));
92
-
93
- $stmt = $pdo->prepare('SELECT * FROM articles WHERE id = ?');
94
-
95
- $stmt->execute(array($userid));
96
-
97
-
98
-
99
- $password = $_POST["password"];
100
-
101
- if ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
102
-
103
- if (crypt($password) == $row['password'])) {
104
-
105
- session_regenerate_id(true);
106
-
107
-
108
-
109
- // 入力したIDのユーザー名を取得
110
-
111
- $id = $row['id'];
112
-
113
- $sql = "SELECT * FROM articles WHERE id = $id"; //入力したIDからユーザー名を取得
114
-
115
- $stmt = $pdo->query($sql);
116
-
117
- foreach ($stmt as $row) {
118
-
119
- $row['name']; // ユーザー名
120
-
121
- }
122
-
123
- $_SESSION["NAME"] = $row['name'];
124
-
125
- header("Location: keiziban.php"); // メイン画面へ遷移
126
-
127
- exit(); // 処理終了
128
-
129
- } else {
130
-
131
- // 認証失敗
132
-
133
- $errorMessage = 'ユーザーIDあるいはパスワードに誤りがあります。';
134
-
135
- }
136
-
137
- } else {
138
-
139
- // 4. 認証成功なら、セッションIDを新規に発行する
140
-
141
- // 該当データなし
142
-
143
- $errorMessage = 'ユーザーIDあるいはパスワードに誤りがあります。';
144
-
145
- }
146
-
147
- } catch (PDOException $e) {
148
-
149
- $errorMessage = 'データベースエラー';
150
-
151
- //$errorMessage = $sql;
152
-
153
- // $e->getMessage() でエラー内容を参照可能(デバック時のみ表示)
154
-
155
- // echo $e->getMessage();
156
-
157
- }
158
-
159
- }
160
-
161
- }
33
+ if (empty($_POST["userid"])) {
34
+
35
+ $errorMessage = 'ユーザーIDが未入力です。';
36
+
37
+ } else if (empty($_POST["password"])) {
38
+
39
+ $errorMessage = 'パスワードが未入力です。';
40
+
41
+ }
42
+
43
+
44
+
45
+ if (isset($_POST["userid"]) && isset($_POST["password"])) {
46
+
47
+
48
+
49
+ $dsn = 'mysql:dbname=co_306_it_3919_com;host=localhost';
50
+
51
+ $user = 'co-306.it.3919.com';
52
+
53
+ $pas = 'GVyfuCY';
54
+
55
+
56
+
57
+ $pdo = new PDO($dsn, $user, $pas);
58
+
59
+
60
+
61
+ $sql = "SELECT * FROM articls";
62
+
63
+ $res = $dbh -> query($sql);
64
+
65
+ foreach($res as $row){
66
+
67
+
68
+
69
+ if($row['id'] == $_POST["userid"] && $row['pass'] == $_POST["password"]){
70
+
71
+
72
+
73
+ $login_url = "kadai3_keiziban.php";
74
+
75
+ header("Location: {$login_url}");
76
+
77
+ exit();
78
+
79
+
80
+
81
+ $_POST["userid"] = $_SESSION["userid"];
82
+
83
+ $_POST["password"] = $_SESSION["pass"];
84
+
85
+
86
+
87
+ }else{
88
+
89
+ $errorMessage = 'ユーザーIDあるいはパスワードに誤りがあります。';
90
+
91
+ }
92
+
93
+ }
94
+
95
+ }
96
+
97
+ }
98
+
99
+
162
100
 
163
101
  ?>
164
102
 
165
103
 
166
104
 
105
+
106
+
167
107
  ```
168
108
 
169
109
 
@@ -188,9 +128,9 @@
188
128
 
189
129
  <?php
190
130
 
191
- if ($error_message) {
131
+ if ($errorMessage) {
192
-
132
+
193
- print '<font color="red">'.$error_message.'</font>';
133
+ print '<font color="red">'.$errorMessage.'</font>';
194
134
 
195
135
  }
196
136
 
@@ -198,7 +138,7 @@
198
138
 
199
139
 
200
140
 
201
- <form action="kadai.php" method="POST">
141
+ <form action="kadai300.php" method="POST">
202
142
 
203
143
 
204
144
 
@@ -238,7 +178,7 @@
238
178
 
239
179
 
240
180
 
241
- <form action="form.php">
181
+ <form action="kadai3_form.php">
242
182
 
243
183
  <fieldset>
244
184
 
@@ -252,10 +192,14 @@
252
192
 
253
193
 
254
194
 
195
+
196
+
255
197
  </body>
256
198
 
257
199
  </html>
258
200
 
259
201
 
260
202
 
203
+
204
+
261
205
  ```

1

文言訂正

2017/12/19 06:37

投稿

mochio_o7
mochio_o7

スコア17

test CHANGED
File without changes
test CHANGED
@@ -16,8 +16,6 @@
16
16
 
17
17
 
18
18
 
19
- 以下、無理やりつくってみました。
20
-
21
19
 
22
20
 
23
21
  ```php