質問編集履歴

3

phpとcssを追記しました。

2020/03/23 02:14

投稿

hh_ww
hh_ww

スコア22

test CHANGED
File without changes
test CHANGED
@@ -369,3 +369,259 @@
369
369
  </html>
370
370
 
371
371
  ```
372
+
373
+
374
+
375
+ ```php
376
+
377
+ <?php
378
+
379
+ require_once dirname(__FILE__).'/../Common/SessionStart.php'; // セッション開始用
380
+
381
+ require_once dirname(__FILE__).'/../Common/DB/DB.php';
382
+
383
+ require_once dirname(__FILE__).'/../Common/SetLog.php';
384
+
385
+
386
+
387
+ $myName = 'GetUserInfo.php';
388
+
389
+
390
+
391
+ // ポストデータを取得
392
+
393
+ $objPost = json_decode($_POST['objPost'], true);
394
+
395
+
396
+
397
+ $userID = '';
398
+
399
+ $userName = '';
400
+
401
+ $msgCode = '';
402
+
403
+ $flagLogin = '';
404
+
405
+
406
+
407
+ $role_edit_master = 0;
408
+
409
+ $role_edit_order = 0;
410
+
411
+
412
+
413
+ try {
414
+
415
+ $db = new DB(MY_DBNAME, MY_DBUSR, MY_DBPASS, MY_DBTYPE, MY_DBHOST);
416
+
417
+
418
+
419
+ $sql = '
420
+
421
+ SELECT user_id, user_name, password, full_name, role_edit_master, role_edit_order
422
+
423
+ FROM mst_user
424
+
425
+ WHERE
426
+
427
+ UPPER(user_name) = UPPER(:user_name)
428
+
429
+ ';
430
+
431
+ $params = array(':user_name' => $objPost['userID']);
432
+
433
+
434
+
435
+ $row = $db->getRow($sql, $params);
436
+
437
+
438
+
439
+ if (empty($row)) {
440
+
441
+ $msgCode = 'LoginUserError'; // ユーザーIDが登録されていません
442
+
443
+ } else {
444
+
445
+ $password = $row['password'];
446
+
447
+
448
+
449
+ if (trim($password) === trim($objPost['password'])) {
450
+
451
+
452
+
453
+ $userID = $row['user_id'];
454
+
455
+ $userName = trim($row['full_name']);
456
+
457
+
458
+
459
+ $role_edit_master = $row['role_edit_master'];
460
+
461
+ $role_edit_order = $row['role_edit_order'];
462
+
463
+
464
+
465
+ $flagLogin = 'OK';
466
+
467
+ } else {
468
+
469
+ $msgCode = 'PasswordError'; // パスワードが違います
470
+
471
+ }
472
+
473
+ }
474
+
475
+
476
+
477
+ $db = null;
478
+
479
+ unset($db);
480
+
481
+
482
+
483
+ $_SESSION["yousetsu_info"] = array(
484
+
485
+ "user_id" => $userID,
486
+
487
+ "user_name" => strtoupper($objPost['userID']),
488
+
489
+ "full_name" => $userName,
490
+
491
+ "role_edit_master" => $role_edit_master,
492
+
493
+ "role_edit_order" => $role_edit_order
494
+
495
+ );
496
+
497
+
498
+
499
+ $result = array(
500
+
501
+ 'resultCode' => $flagLogin,
502
+
503
+ 'msgCode' => $msgCode,
504
+
505
+ 'userName' => $userName
506
+
507
+ );
508
+
509
+
510
+
511
+ } catch (Exception $e) {
512
+
513
+
514
+
515
+ $result = array(
516
+
517
+ 'resultCode' => 'error',
518
+
519
+ 'msgCode' => mb_convert_encoding($e->getMessage(), SYSTEM_CHAR_CODE, "auto"),
520
+
521
+ 'userName' => ''
522
+
523
+ );
524
+
525
+
526
+
527
+ // エラーログ出力
528
+
529
+ setLog($myName, 'error', $e->getMessage());
530
+
531
+ }
532
+
533
+
534
+
535
+ echo json_encode($result); //JSONにエンコード
536
+
537
+ ```
538
+
539
+ ```css
540
+
541
+ @charset "UTF-8";
542
+
543
+ /********************************************************************************
544
+
545
+ Title : Login.css
546
+
547
+ *********************************************************************************/
548
+
549
+
550
+
551
+ #areaLogin {
552
+
553
+ position: absolute;
554
+
555
+ top: 150px;
556
+
557
+ left: 50%;
558
+
559
+ margin-left:-110px;
560
+
561
+ width: 220px;
562
+
563
+ height: 150px;
564
+
565
+ }
566
+
567
+
568
+
569
+ label.login {
570
+
571
+ font-size: 12px;
572
+
573
+ display: block;
574
+
575
+ width: 80px;
576
+
577
+ float: left;
578
+
579
+ text-align: left;
580
+
581
+ padding-top: 6px;
582
+
583
+ }
584
+
585
+
586
+
587
+ input.login {
588
+
589
+ float: right;
590
+
591
+ font-size: 12px;
592
+
593
+ width: 120px;
594
+
595
+ height: 22px;
596
+
597
+ margin-bottom: 10px;
598
+
599
+ padding: 5px 2px 0px 3px;
600
+
601
+ }
602
+
603
+
604
+
605
+ input.btnDefault {
606
+
607
+ font-size: 12px;
608
+
609
+ width: 64px;
610
+
611
+ height: 26px;
612
+
613
+ }
614
+
615
+
616
+
617
+ #messageArea {
618
+
619
+ height: 34px;
620
+
621
+ text-align: center;
622
+
623
+ font-size: 12px;
624
+
625
+ }
626
+
627
+ ```

2

ソース追記いたしました。

2020/03/23 02:14

投稿

hh_ww
hh_ww

スコア22

test CHANGED
File without changes
test CHANGED
@@ -28,7 +28,7 @@
28
28
 
29
29
 
30
30
 
31
- 追記
31
+ 追記1
32
32
 
33
33
  当システムは、これまではphp5.6、Mysql5では正常に動いており、
34
34
 
@@ -37,3 +37,335 @@
37
37
  サーバーを別のサーバーへ移行しているのでMysqlからDBをエクスポート→インポートをしているのでそこで文字コードがおかしくなったのかなと思いましたが、
38
38
 
39
39
  該当のユーザーログイン情報は元のutf8_general_ciで問題なさそうに見えました。
40
+
41
+
42
+
43
+ 追記2
44
+
45
+ エラールートは以下の「throw new Error(obj.msgCode);」部分です。
46
+
47
+
48
+
49
+ ```javascript
50
+
51
+ /********************************************************************************
52
+
53
+ Title : Login.js
54
+
55
+ *********************************************************************************/
56
+
57
+
58
+
59
+ $(function() {
60
+
61
+
62
+
63
+ if(!$.support.opacity){
64
+
65
+
66
+
67
+ alert('このメッセージが表示された場合は、F12を押して表示された画面の\n右上のドキュメントモード切り替えで9以上を選択してください。');
68
+
69
+ }
70
+
71
+
72
+
73
+ // ログインユーザー表示エリアを非表示にする(HTMLを取り除く)
74
+
75
+ $('#areaLoginUser').remove();
76
+
77
+
78
+
79
+ // 開いたときにユーザーIDにフォーカスする
80
+
81
+ $('#userID').focus();
82
+
83
+ // setTimeout(function() {$('#userID').focus();}, 1000);
84
+
85
+ });
86
+
87
+
88
+
89
+ // ログインボタンクリック
90
+
91
+ $(document).on('click', '#btnLogin', function() {
92
+
93
+
94
+
95
+ try {
96
+
97
+ var objPost = new Object();
98
+
99
+ objPost.userID = $('#userID').val();
100
+
101
+ objPost.password = $('#password').val();
102
+
103
+
104
+
105
+ if (objPost.userID == '') throw new Error('ユーザIDを入力してください');
106
+
107
+ if (objPost.password == '') throw new Error('パスワードを入力してください');
108
+
109
+
110
+
111
+ var html = '';
112
+
113
+ html += '<div style="width: 50px; height: 40px; background-color: white; opacity: 0.8; margin: auto; border: 1px #ddd solid;border-radius: 8px; padding-top: 10px;">';
114
+
115
+ html += ' <img src="../Common/Images/loading.gif" />';
116
+
117
+ html += '</div>';
118
+
119
+ $('#messageArea').html(html);
120
+
121
+
122
+
123
+ $.ajax({
124
+
125
+ url: '../Login/GetUserInfo.php?' + mySerialDate(),
126
+
127
+ data: {'objPost' : $.toJSON(objPost)}
128
+
129
+ })
130
+
131
+ .done(function(data) {
132
+
133
+ try {
134
+
135
+ var obj = $.evalJSON(data); // PHPからJSON形式で受け取る
136
+
137
+
138
+
139
+ // ログイン失敗ならメッセージを表示
140
+
141
+ if (obj.resultCode == 'OK') {
142
+
143
+
144
+
145
+ // ログイン成功ならお知らせ画面に移動
146
+
147
+ location.href = '../Information/Information.php?' + mySerialDate();
148
+
149
+
150
+
151
+ } else {
152
+
153
+
154
+
155
+ switch (obj.msgCode) {
156
+
157
+ case 'LoginUserError':
158
+
159
+ throw new Error('ユーザーIDが登録されていません');
160
+
161
+ break;
162
+
163
+ case 'PasswordError':
164
+
165
+ throw new Error('パスワードが違います');
166
+
167
+ break;
168
+
169
+ default:
170
+
171
+ throw new Error(obj.msgCode);
172
+
173
+ break;
174
+
175
+ }
176
+
177
+ }
178
+
179
+
180
+
181
+ } catch (e) {
182
+
183
+ var message = '<label style="color: red;">'+escapeHTML(e.message)+'</label>';
184
+
185
+ $('#messageArea').html(message);
186
+
187
+ }
188
+
189
+ })
190
+
191
+ .fail(function(XMLHttpRequest, textStatus, errorThrown) {
192
+
193
+ alert("AjaxError\n\n FileName : Login.js\n Module : btnLogin.click\n\n StatusCode : "+XMLHttpRequest.status+"\n ReadyState : "+XMLHttpRequest.readyState+"\n Status : "+textStatus+"\n Message : "+errorThrown);
194
+
195
+ $('#messageArea').html('');
196
+
197
+ });
198
+
199
+
200
+
201
+ } catch (e) {
202
+
203
+ var message = '<label style="color: red;">' + escapeHTML(e.message) + '</label>';
204
+
205
+ $('#messageArea').html(message);
206
+
207
+ }
208
+
209
+ });
210
+
211
+
212
+
213
+ // クリアボタンクリック
214
+
215
+ $(document).on('click', '#btnClear', function() {
216
+
217
+
218
+
219
+ $('#userID').val('');
220
+
221
+ $('#password').val('');
222
+
223
+ $('#messageArea').html('');
224
+
225
+
226
+
227
+ $('#userID').focus();
228
+
229
+ });
230
+
231
+ ```
232
+
233
+
234
+
235
+ ```php
236
+
237
+ <?php
238
+
239
+ /********************************************************************************
240
+
241
+ Title : Login.php
242
+
243
+ *********************************************************************************/
244
+
245
+ require_once dirname(__FILE__).'/../../.ini.php';
246
+
247
+ require_once dirname(__FILE__).'/../Common/Const.php';
248
+
249
+ require_once dirname(__FILE__).'/../Common/MyFunction.php';
250
+
251
+ ?>
252
+
253
+ <!DOCTYPE html>
254
+
255
+ <html>
256
+
257
+ <head>
258
+
259
+ <title></title>
260
+
261
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
262
+
263
+ <meta charset="utf-8">
264
+
265
+ <meta name="viewport" content="width=device-width, initial-scale=1">
266
+
267
+ <link rel="stylesheet" href="../Common/CSS/Common.css"> <!-- 共通CSS -->
268
+
269
+ <link rel="stylesheet" href="./Login.css"> <!-- 専用CSS -->
270
+
271
+ </head>
272
+
273
+ <body>
274
+
275
+ <script src="../Common/Library/js/jquery-3.1.0.min.js"></script> --> <!-- jQuery 3.1 -->
276
+
277
+ <script src="../Common/Library/js/jquery-1.12.4.min.js"></script> <!-- jQuery 1.12.4 -->
278
+
279
+ <script src="../Common/Library/js/jquery.json-2.6.0.min.js"></script> <!-- jQuery JSON 2.6 -->
280
+
281
+ <script>
282
+
283
+ // タイトル
284
+
285
+ window.document.title = '<?php echo MainTitle;?>'; // Const.php が必要
286
+
287
+
288
+
289
+ var ROOT_FOLDER = '<?php echo ROOT_FOLDER; ?>'; // .ini.php が読み込まれている必要あり
290
+
291
+ </script>
292
+
293
+ <script src="../Common/MyFunction.js"></script> <!-- 共通関数 -->
294
+
295
+ <script src="./Login.js"></script> <!-- 専用スクリプト -->
296
+
297
+
298
+
299
+ <div id="main">
300
+
301
+
302
+
303
+ <!-- ヘッダー -->
304
+
305
+ <?php require_once dirname(__FILE__).'/../Common/Header.php'; ?>
306
+
307
+
308
+
309
+ <!-- ログインエリア -->
310
+
311
+ <div id="areaLogin">
312
+
313
+ <form action="" onsubmit="return false;">
314
+
315
+
316
+
317
+ <!-- ユーザID -->
318
+
319
+ <label id="lblUserID" class="login lblUserID">ユーザID</label><input class="login" id="userID" type="text" value="" style="ime-mode:disabled;" />
320
+
321
+ <div style="clear:both;"></div>
322
+
323
+
324
+
325
+ <!-- パスワード -->
326
+
327
+ <label id="lblPassword" class="login lblPassword">パスワード</label><input class="login" id="password" type="password" value="" style="ime-mode:disabled;" />
328
+
329
+ <div style="clear:both;"></div>
330
+
331
+
332
+
333
+ <!-- メッセージエリア -->
334
+
335
+ <div id="messageArea"></div>
336
+
337
+ <br />
338
+
339
+
340
+
341
+ <!-- ボタンエリア -->
342
+
343
+ <div style="text-align: center;">
344
+
345
+ <!-- ログイン -->
346
+
347
+ <input id="btnLogin" class="btnDefault btnLogin" type="submit" value="ログイン" />
348
+
349
+ <!-- クリア -->
350
+
351
+ <input id="btnClear" class="btnDefault btnCancel" type="button" value="クリア" />
352
+
353
+ </div>
354
+
355
+ </form>
356
+
357
+ </div>
358
+
359
+
360
+
361
+ <!-- フッター -->
362
+
363
+ <?php require_once dirname(__FILE__).'/../Common/Footer.php'; ?>
364
+
365
+ </div>
366
+
367
+ </body>
368
+
369
+ </html>
370
+
371
+ ```

1

詳細の情報を追記しました。ソースも追記するようにします。

2020/03/23 02:08

投稿

hh_ww
hh_ww

スコア22

test CHANGED
File without changes
test CHANGED
@@ -25,3 +25,15 @@
25
25
  ・F12を押してエラーを確認するもなにも見当たらず
26
26
 
27
27
  ・phpやmysqlのエラー内容にもそれらしきものは見当たらず
28
+
29
+
30
+
31
+ 追記
32
+
33
+ 当システムは、これまではphp5.6、Mysql5では正常に動いており、
34
+
35
+ ログイン画面のソースは変わっていませんので、ソースではないのではないかと推測しております。
36
+
37
+ サーバーを別のサーバーへ移行しているのでMysqlからDBをエクスポート→インポートをしているのでそこで文字コードがおかしくなったのかなと思いましたが、
38
+
39
+ 該当のユーザーログイン情報は元のutf8_general_ciで問題なさそうに見えました。