Jestem teraz pracuje na Sample login application
w którym user
może login
z ich username
i password
naciskając login button
. Jeśli numer user
jest nowy, można go również zarejestrować, wybierając opcję username
i password
. I ta część aplikacji zadziałała.Jak zweryfikować poświadczenia wprowadzone przez użytkowników z jednego w bazie danych SQLite
Moje rzeczywiste pytanie brzmi: Jak mogę porównać użytkownik wszedł credentials
z tym, który przechowywany w database
.
użyłem SELECT
zapytanie, aby wybrać nazwę użytkownika i pwd jak to
public void ValidateLogin(String un, String pwd)
{
SELECT_FROM = "SELECT u_name, u_pwd FROM" + table_name + "WHERE u_name == " + un + "AND u_pwd ==" + pwd;
db.execSQL(SELECT_FROM);
}
gdzie username(un)
i password(pwd)
pochodzi z innego java file login.java
.
Teraz proszę mi powiedzieć, w jaki sposób mogę dokonać pomyślne przejście do viewprofile stronę po udanym logowaniu?
widzę cztery problemy tuż: 1) SQL nie jest java == jest nieprawidłowa składnia SQL. Zamiast tego użyj tylko 1 =. w SQL działa jako przypisania i walidacje. 2) un & pwd są znakami napisowymi i muszą być zawarte w tics ('), więc ... "WHERE u_name ='" & un + "'AND u_pwd ='" + pwd + "'" 3) Ta technika jest wadliwa jak pozostawia otwartą na iniekcję SQL. Zamiast tego użyj parametrów. 4) na końcu musisz sprawdzić liczbę wierszy zwracanych. Jeśli rząd wierszy == 1 zwróci wartość true, w przeciwnym razie zwróci false. – xQbert
Co więcej, chociaż baza danych sklepów z Androidem znajduje się w katalogu aplikacji, nie zalecam przechowywania haseł jako zwykłego tekstu. Proponuję zamiast tego używać hashowej funkcji hasła. – Yury
dzięki za odpowiedź xQbert i jury ... – JAaVA