Создание логина в javascript - сравнение массивов - PullRequest
0 голосов
/ 07 июня 2011

У меня есть окно входа в систему с использованием простого имени входа в javascript, сравнивающего имена пользователей и пароли, прежде чем вы все начнете, я знаю о проблемах безопасности при использовании javascript для аутентификации. Вот код

function validate() {
    var un = document.getElementById("usern").value;
    var pw = document.getElementById("pword").value;
    var valid = false;

    var unArray = ["markwalt", "jongossy", "lisacain", "jenndemp"];
    var pwArray = ["mark1234", "flomaygo", "lisa1234", "jenny1234"];
    var fnArray = ["Mark Walters", "Jonathan Goss", "Lisa Cain", "Jenny Dempsey"];

    for (var i=0; i <unArray.length; i++) {
        if ((un == unArray[i]) && (pw == pwArray[i])) {
            valid = true;
            break;
        }
    }

    if (valid) {
        alert ("Login was successful");
        document.getElementById("mandatory1").value = un;
    }
    else {
        alert("Invalid Username and/or Password! Please try again. You will not be able to submit this form without a successful login")
        document.getElementById("pword").value = "";
        document.getElementById("usern").value = "";
        document.getElementById("usern").focus();
    }
}

В настоящее время, если вход успешен, я отправляю имя пользователя в скрытое поле, которое затем используется программным обеспечением. Как связать имена в fnArray с другими правильными именем пользователя и паролем, чтобы затем я мог получить связанное полное имя и опубликовать его в скрытом поле «mandator1» вместо этого?

Ответы [ 4 ]

1 голос
/ 07 июня 2011

Вы можете получить индекс нужного пользователя

var unArray = ["markwalt", "jongossy", "lisacain", "jenndemp"];
var pwArray = ["mark1234", "flomaygo", "lisa1234", "jenny1234"];
var fnArray = ["Mark Walters, Jonathan Goss, Lisa Cain, Jenny Dempsey"];
var index = 0;
for (var i=0; i <unArray.length; i++) {
    if ((un == unArray[i]) && (pw == pwArray[i])) {
        valid = true;
        index = i;
        break;
    }
}

теперь вы можете получить доступ к правильным данным, используя

unArray[index]; 
// and so on for other arrays
1 голос
/ 07 июня 2011

Определите переменную для полного имени и установите ее, если у вас есть действительный пользователь:

var fn = "";

/* ... */

valid = true;
fn = fnArray[i];

/* ... */

document.getElementById("mandatory1").value = fn;

Примечание: На самом деле вы можете проверить достоверность позже, используя fn.Если это пустая строка, то ни один пользователь не вошел в систему. Это делает его таким же назначением, как valid и более.

1 голос
/ 07 июня 2011

Попробуйте это.

function validate() {
    var un = document.getElementById("usern").value;
    var pw = document.getElementById("pword").value;
    var valid = -1;

    var unArray = ["markwalt", "jongossy", "lisacain", "jenndemp"];
    var pwArray = ["mark1234", "flomaygo", "lisa1234", "jenny1234"];
    var fnArray = ["Mark Walters","Jonathan Goss","Lisa Cain","Jenny Dempsey"];

    for (var i=0; i <unArray.length; i++) {
        if ((un == unArray[i]) && (pw == pwArray[i])) {
            valid = i;
            break;
        }
    }

    if (valid != -1) {
        alert ("Login was successful");
        document.getElementById("mandatory1").value = fnArray[valid];
    }
    else {
        alert("Invalid Username and/or Password! Please try again. You will not be able to submit this form without a successful login")
        document.getElementById("pword").value = "";
        document.getElementById("usern").value = "";
        document.getElementById("usern").focus();
    }
}
0 голосов
/ 07 июня 2011

установить обязательный параметр 1, если вход выполнен успешно на основе i (в цикле for)

...