Код: Выделить всё
query = "INSERT INTO users (user, hemail, hpassword, confirmid, owner_confirm, user_confirm)" // Insert new unconfirmed user into users table ...
+ "VALUES ('" + user + "','" + hemail + "','" + hpassword + "','" + confirmid + "', 0, 0);"
+ "SELECT * FROM users WHERE user='" + user + "';";
< /code>
Следующий код исходит из соответствующего обратного вызова при вышеуказанном запросе MySQL, который выполняет проверку в записях вставленной строки. Если и только если все записи будут такими же задумальными, будет отправлено электронное письмо с подтверждением пользователю. В противном случае регистрация будет считаться неудачей. < /P>
if (mode === 'reg')
{ // Double query, i.e. INSERT & SELECT *
// ... so use first row of second array within result ...
if (result[1][0]['user'] === user && result[1][0]['hemail'] === hemail
&& result[1][0]['hpassword'] === hpassword && result[1][0].confirmid === confirmid // ... i.e. result[1][0]
&& result[1][0]['owner_confirm'] == 0 && result[1][0]['user_confirm'] == 0)
{
sendConfirmEmail(email);
message = "Registration entered, awaits confirmation";
}
else
{
console.log('user' + " is: " + result[1][0]['user']);
console.log('hemail' + " is: " + result[1][0]['hemail']);
console.log('hpassword' + " is: " + result[1][0]['hpassword']);
console.log('confirmid' + " is: " + result[1][0]['confirmid']);
console.log('owner_confirm' + " is: " + result[1][0]['owner_confirm']);
console.log("user_confirm" + " is: " + result[1][0]['user_confirm']);
message = "Registration fail";
}
}
< /code>
Приведенный выше код всегда видит, что попытка регистрации не удастся, даже если все данные ввода и бэкэнд правильно введены в таблицу пользователей базы данных. Журналы тестовой консоли на всех записях строк показывают, что причина, по -видимому, заключается в двух столбцах Tinyint (1)......
.....
hemail is: 72348c9357a1e85bdd979e4b9a53b32d3be0c40ad789872f6b7ab5fa1814c08a
hpassword is: 4c8a4792ccf31eee3794b8dc084254fa3b049a6a9c266960f95da694946b1b28
confirmid is: 72348c9357a1e85bdd979e4b9a53b32d3be0c40ad789872f6b7ab5fa1814c08a
owner_confirm is:
user_confirm is:
authSubmitCallback message: Registration fail
dbCallback response: Registration fail
In xhrCallback now ...
Message: Registration fail
Sent back response: Registration fail
Что здесь делается неправильно? Вопрос, я вернулся к биту (1) тип для двух логических записей и добавил оператор журнала консоли. < /p>
Вывод был: < /p>
user is: tamjk
hemail is: 72348c9357a1e85bdd979e4b9a53b32d3be0c40ad789872f6b7ab5fa1814c08a
hpassword is: 4c8a4792ccf31eee3794b8dc084254fa3b049a6a9c266960f95da694946b1b28
confirmid is: 72348c9357a1e85bdd979e4b9a53b32d3be0c40ad789872f6b7ab5fa1814c08a
owner_confirm is:
user_confirm is: 0
owner_confirm is: 1
authSubmitCallback message: Registration fail
dbCallback response: Registration fail
In xhrCallback now ...
Message: Registration fail
Sent back response: Registration fail
< /code>
Так что в первый раз, значение не возвращается. С журналом консоли < /p>
console.log('owner_confirm' + " is: " + (result[1][0]['owner_confirm']?1:0));
< /code>
Значение 1 возвращается. < /p>
В действительности, таблица базы данных имеет обе записи как 0 - как они были записаны в коде. Когда я исправил это обратно в Tinyint (1), кажется, все работает так, как и должно. Я внеслю изменения в заголовок сообщения, чтобы отразить эту мою ошибку.>
Подробнее здесь: https://stackoverflow.com/questions/797 ... -being-rea
Мобильная версия