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

質問編集履歴

3

phpとcssを追記しました。

2020/03/23 02:14

投稿

hh_ww
hh_ww

スコア22

title CHANGED
File without changes
body CHANGED
@@ -183,4 +183,132 @@
183
183
  </div>
184
184
  </body>
185
185
  </html>
186
+ ```
187
+
188
+ ```php
189
+ <?php
190
+ require_once dirname(__FILE__).'/../Common/SessionStart.php'; // セッション開始用
191
+ require_once dirname(__FILE__).'/../Common/DB/DB.php';
192
+ require_once dirname(__FILE__).'/../Common/SetLog.php';
193
+
194
+ $myName = 'GetUserInfo.php';
195
+
196
+ // ポストデータを取得
197
+ $objPost = json_decode($_POST['objPost'], true);
198
+
199
+ $userID = '';
200
+ $userName = '';
201
+ $msgCode = '';
202
+ $flagLogin = '';
203
+
204
+ $role_edit_master = 0;
205
+ $role_edit_order = 0;
206
+
207
+ try {
208
+ $db = new DB(MY_DBNAME, MY_DBUSR, MY_DBPASS, MY_DBTYPE, MY_DBHOST);
209
+
210
+ $sql = '
211
+ SELECT user_id, user_name, password, full_name, role_edit_master, role_edit_order
212
+ FROM mst_user
213
+ WHERE
214
+ UPPER(user_name) = UPPER(:user_name)
215
+ ';
216
+ $params = array(':user_name' => $objPost['userID']);
217
+
218
+ $row = $db->getRow($sql, $params);
219
+
220
+ if (empty($row)) {
221
+ $msgCode = 'LoginUserError'; // ユーザーIDが登録されていません
222
+ } else {
223
+ $password = $row['password'];
224
+
225
+ if (trim($password) === trim($objPost['password'])) {
226
+
227
+ $userID = $row['user_id'];
228
+ $userName = trim($row['full_name']);
229
+
230
+ $role_edit_master = $row['role_edit_master'];
231
+ $role_edit_order = $row['role_edit_order'];
232
+
233
+ $flagLogin = 'OK';
234
+ } else {
235
+ $msgCode = 'PasswordError'; // パスワードが違います
236
+ }
237
+ }
238
+
239
+ $db = null;
240
+ unset($db);
241
+
242
+ $_SESSION["yousetsu_info"] = array(
243
+ "user_id" => $userID,
244
+ "user_name" => strtoupper($objPost['userID']),
245
+ "full_name" => $userName,
246
+ "role_edit_master" => $role_edit_master,
247
+ "role_edit_order" => $role_edit_order
248
+ );
249
+
250
+ $result = array(
251
+ 'resultCode' => $flagLogin,
252
+ 'msgCode' => $msgCode,
253
+ 'userName' => $userName
254
+ );
255
+
256
+ } catch (Exception $e) {
257
+
258
+ $result = array(
259
+ 'resultCode' => 'error',
260
+ 'msgCode' => mb_convert_encoding($e->getMessage(), SYSTEM_CHAR_CODE, "auto"),
261
+ 'userName' => ''
262
+ );
263
+
264
+ // エラーログ出力
265
+ setLog($myName, 'error', $e->getMessage());
266
+ }
267
+
268
+ echo json_encode($result); //JSONにエンコード
269
+ ```
270
+ ```css
271
+ @charset "UTF-8";
272
+ /********************************************************************************
273
+ Title : Login.css
274
+ *********************************************************************************/
275
+
276
+ #areaLogin {
277
+ position: absolute;
278
+ top: 150px;
279
+ left: 50%;
280
+ margin-left:-110px;
281
+ width: 220px;
282
+ height: 150px;
283
+ }
284
+
285
+ label.login {
286
+ font-size: 12px;
287
+ display: block;
288
+ width: 80px;
289
+ float: left;
290
+ text-align: left;
291
+ padding-top: 6px;
292
+ }
293
+
294
+ input.login {
295
+ float: right;
296
+ font-size: 12px;
297
+ width: 120px;
298
+ height: 22px;
299
+ margin-bottom: 10px;
300
+ padding: 5px 2px 0px 3px;
301
+ }
302
+
303
+ input.btnDefault {
304
+ font-size: 12px;
305
+ width: 64px;
306
+ height: 26px;
307
+ }
308
+
309
+ #messageArea {
310
+ height: 34px;
311
+ text-align: center;
312
+ font-size: 12px;
313
+ }
186
314
  ```

2

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

2020/03/23 02:14

投稿

hh_ww
hh_ww

スコア22

title CHANGED
File without changes
body CHANGED
@@ -13,8 +13,174 @@
13
13
  ・F12を押してエラーを確認するもなにも見当たらず
14
14
  ・phpやmysqlのエラー内容にもそれらしきものは見当たらず
15
15
 
16
- 追記
16
+ 追記1
17
17
  当システムは、これまではphp5.6、Mysql5では正常に動いており、
18
18
  ログイン画面のソースは変わっていませんので、ソースではないのではないかと推測しております。
19
19
  サーバーを別のサーバーへ移行しているのでMysqlからDBをエクスポート→インポートをしているのでそこで文字コードがおかしくなったのかなと思いましたが、
20
- 該当のユーザーログイン情報は元のutf8_general_ciで問題なさそうに見えました。
20
+ 該当のユーザーログイン情報は元のutf8_general_ciで問題なさそうに見えました。
21
+
22
+ 追記2
23
+ エラールートは以下の「throw new Error(obj.msgCode);」部分です。
24
+
25
+ ```javascript
26
+ /********************************************************************************
27
+ Title : Login.js
28
+ *********************************************************************************/
29
+
30
+ $(function() {
31
+
32
+ if(!$.support.opacity){
33
+
34
+ alert('このメッセージが表示された場合は、F12を押して表示された画面の\n右上のドキュメントモード切り替えで9以上を選択してください。');
35
+ }
36
+
37
+ // ログインユーザー表示エリアを非表示にする(HTMLを取り除く)
38
+ $('#areaLoginUser').remove();
39
+
40
+ // 開いたときにユーザーIDにフォーカスする
41
+ $('#userID').focus();
42
+ // setTimeout(function() {$('#userID').focus();}, 1000);
43
+ });
44
+
45
+ // ログインボタンクリック
46
+ $(document).on('click', '#btnLogin', function() {
47
+
48
+ try {
49
+ var objPost = new Object();
50
+ objPost.userID = $('#userID').val();
51
+ objPost.password = $('#password').val();
52
+
53
+ if (objPost.userID == '') throw new Error('ユーザIDを入力してください');
54
+ if (objPost.password == '') throw new Error('パスワードを入力してください');
55
+
56
+ var html = '';
57
+ 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;">';
58
+ html += ' <img src="../Common/Images/loading.gif" />';
59
+ html += '</div>';
60
+ $('#messageArea').html(html);
61
+
62
+ $.ajax({
63
+ url: '../Login/GetUserInfo.php?' + mySerialDate(),
64
+ data: {'objPost' : $.toJSON(objPost)}
65
+ })
66
+ .done(function(data) {
67
+ try {
68
+ var obj = $.evalJSON(data); // PHPからJSON形式で受け取る
69
+
70
+ // ログイン失敗ならメッセージを表示
71
+ if (obj.resultCode == 'OK') {
72
+
73
+ // ログイン成功ならお知らせ画面に移動
74
+ location.href = '../Information/Information.php?' + mySerialDate();
75
+
76
+ } else {
77
+
78
+ switch (obj.msgCode) {
79
+ case 'LoginUserError':
80
+ throw new Error('ユーザーIDが登録されていません');
81
+ break;
82
+ case 'PasswordError':
83
+ throw new Error('パスワードが違います');
84
+ break;
85
+ default:
86
+ throw new Error(obj.msgCode);
87
+ break;
88
+ }
89
+ }
90
+
91
+ } catch (e) {
92
+ var message = '<label style="color: red;">'+escapeHTML(e.message)+'</label>';
93
+ $('#messageArea').html(message);
94
+ }
95
+ })
96
+ .fail(function(XMLHttpRequest, textStatus, errorThrown) {
97
+ 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);
98
+ $('#messageArea').html('');
99
+ });
100
+
101
+ } catch (e) {
102
+ var message = '<label style="color: red;">' + escapeHTML(e.message) + '</label>';
103
+ $('#messageArea').html(message);
104
+ }
105
+ });
106
+
107
+ // クリアボタンクリック
108
+ $(document).on('click', '#btnClear', function() {
109
+
110
+ $('#userID').val('');
111
+ $('#password').val('');
112
+ $('#messageArea').html('');
113
+
114
+ $('#userID').focus();
115
+ });
116
+ ```
117
+
118
+ ```php
119
+ <?php
120
+ /********************************************************************************
121
+ Title : Login.php
122
+ *********************************************************************************/
123
+ require_once dirname(__FILE__).'/../../.ini.php';
124
+ require_once dirname(__FILE__).'/../Common/Const.php';
125
+ require_once dirname(__FILE__).'/../Common/MyFunction.php';
126
+ ?>
127
+ <!DOCTYPE html>
128
+ <html>
129
+ <head>
130
+ <title></title>
131
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
132
+ <meta charset="utf-8">
133
+ <meta name="viewport" content="width=device-width, initial-scale=1">
134
+ <link rel="stylesheet" href="../Common/CSS/Common.css"> <!-- 共通CSS -->
135
+ <link rel="stylesheet" href="./Login.css"> <!-- 専用CSS -->
136
+ </head>
137
+ <body>
138
+ <script src="../Common/Library/js/jquery-3.1.0.min.js"></script> --> <!-- jQuery 3.1 -->
139
+ <script src="../Common/Library/js/jquery-1.12.4.min.js"></script> <!-- jQuery 1.12.4 -->
140
+ <script src="../Common/Library/js/jquery.json-2.6.0.min.js"></script> <!-- jQuery JSON 2.6 -->
141
+ <script>
142
+ // タイトル
143
+ window.document.title = '<?php echo MainTitle;?>'; // Const.php が必要
144
+
145
+ var ROOT_FOLDER = '<?php echo ROOT_FOLDER; ?>'; // .ini.php が読み込まれている必要あり
146
+ </script>
147
+ <script src="../Common/MyFunction.js"></script> <!-- 共通関数 -->
148
+ <script src="./Login.js"></script> <!-- 専用スクリプト -->
149
+
150
+ <div id="main">
151
+
152
+ <!-- ヘッダー -->
153
+ <?php require_once dirname(__FILE__).'/../Common/Header.php'; ?>
154
+
155
+ <!-- ログインエリア -->
156
+ <div id="areaLogin">
157
+ <form action="" onsubmit="return false;">
158
+
159
+ <!-- ユーザID -->
160
+ <label id="lblUserID" class="login lblUserID">ユーザID</label><input class="login" id="userID" type="text" value="" style="ime-mode:disabled;" />
161
+ <div style="clear:both;"></div>
162
+
163
+ <!-- パスワード -->
164
+ <label id="lblPassword" class="login lblPassword">パスワード</label><input class="login" id="password" type="password" value="" style="ime-mode:disabled;" />
165
+ <div style="clear:both;"></div>
166
+
167
+ <!-- メッセージエリア -->
168
+ <div id="messageArea"></div>
169
+ <br />
170
+
171
+ <!-- ボタンエリア -->
172
+ <div style="text-align: center;">
173
+ <!-- ログイン -->
174
+ <input id="btnLogin" class="btnDefault btnLogin" type="submit" value="ログイン" />
175
+ <!-- クリア -->
176
+ <input id="btnClear" class="btnDefault btnCancel" type="button" value="クリア" />
177
+ </div>
178
+ </form>
179
+ </div>
180
+
181
+ <!-- フッター -->
182
+ <?php require_once dirname(__FILE__).'/../Common/Footer.php'; ?>
183
+ </div>
184
+ </body>
185
+ </html>
186
+ ```

1

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

2020/03/23 02:08

投稿

hh_ww
hh_ww

スコア22

title CHANGED
File without changes
body CHANGED
@@ -11,4 +11,10 @@
11
11
  試した内容は以下です。
12
12
  ・google等で「文字が正しくありません。」で調べたとこころ、ブラウザのキャッシュクリアが有効と聞き試したがかわらず
13
13
  ・F12を押してエラーを確認するもなにも見当たらず
14
- ・phpやmysqlのエラー内容にもそれらしきものは見当たらず
14
+ ・phpやmysqlのエラー内容にもそれらしきものは見当たらず
15
+
16
+ 追記
17
+ 当システムは、これまではphp5.6、Mysql5では正常に動いており、
18
+ ログイン画面のソースは変わっていませんので、ソースではないのではないかと推測しております。
19
+ サーバーを別のサーバーへ移行しているのでMysqlからDBをエクスポート→インポートをしているのでそこで文字コードがおかしくなったのかなと思いましたが、
20
+ 該当のユーザーログイン情報は元のutf8_general_ciで問題なさそうに見えました。