質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Q&A

解決済

1回答

2088閲覧

ログインシステムで、何を入力してもログイン出来てしまう・・

cadwnza

総合スコア10

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

0グッド

1クリップ

投稿2016/05/11 11:06

###前提・実現したいこと
研修で、Eclipseを使って施設予約システムを作っています。
言語はJavaです。

文系出身の完全初心者の為、至らない箇所が多々あると思われます。
回答も欲しいのは勿論ですが、考え方も併せて頂けると幸いです。

CSVファイルから登録者情報を呼び出して、サブクラスA(?)でログイン名とパスワードを抽出。
サブクラスBで入力を受付け、まず登録者かを判定。
次に管理者かユーザーかを判定した上で、それぞれのメニューへ(コンソールの下に書き足される)。

という第一段階で躓いています。

###発生している問題・エラーメッセージ

文字数制限(それぞれ5~10字)でのエラー表示は出来たのですが、CSVファイルを参照しての絞込みができません。 ログイン名とパスワードは受け付けるのですが、 何を入力してもCSVファイルの一番上のアカウントでログインしてしまいます。

###該当のソースコード

今回は何処が悪いのか分からない為、全部上げさせてもらいました。 もっと理解していけば一つ二つで聞けるのでしょうが・・・ [ソースデータ](https://drive.google.com/file/d/0ByW6FGJcNmNNTGk3eTFzVXh0Rk0/view?usp=sharing)

###試したこと
恐らく、何処かの変数に一番上のアカウントが格納されてしまっているのだと思うのですが、
何処だかわかりません。

何分、初心者な為あまり出来ていないと思いますが、Eclipseの機能でエラーを探しました。
見つかったのはmainがあるクラスのログイン名を受け取る変数でしたが、ソース的にはエラーを吐いていませんでした。

###補足情報(言語/FW/ツール等のバージョンなど)
使用言語:Java
ツール :Eclipse
質問者 :文系出身の新入社員

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

findUserAccountメソッドの for文の中で必ずaccountDataを返しているからです。
(ソース内の※の部分)

Java

1//ユーザアカウント情報の検索を繰り返す 2for (String[] accountData : accountDataList) { 3 //targetLoginName = 検索条件となるログイン名 4 String loginName = accountData[1]; 5 //targetPassword = 検索条件となるパスワード 6 String password = accountData[2]; 7 8 // 引数のログイン名とパスワードが、取得したユーザアカウント情報の 9 // ログイン名とパスワードとそれぞれ合致した場合 10 if (loginName.equals(targetLoginName) && password.equals(targetPassword)) { 11 return accountData; 12 } 13 14 //※ここでは1人目のユーザーの情報が入っている。 15 return accountData; 16}

受け取り側ではnullかどうか確認しているようなので、
nullでなくてログイン状態になってしまうのではないでしょうか?

投稿2016/05/11 11:50

kentei_syunrai

総合スコア946

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

cadwnza

2016/05/11 14:37

ありがとうございます。 一つ目を参照している段階で常時返している為だったのですね・・
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問