Возникает ошибка, помогите пожалуйста
ReferenceError: mp is not defined
at registerAttempt (script.js:111:5)
Script.js
Серверная часть
ReferenceError: mp is not defined
at registerAttempt (script.js:111:5)
Script.js
JavaScript:
//document.addEventListener('DOMContentLoaded', () => {
// music(true);
//});
//function music() {
// if (toggle === true) {
// let randomNumber = Math.floor(Math.random() * 5) + 1;
// let sound = new Audio(`./img/track${randomNumber}.mp3`);
// sound.volume = 0.15;
// console.log(randomNumber)
//
// // Play the audio after a user action (e.g., button click)
// sound.play()
// .then(() => {
// console.log('Audio playback started successfully.');
// })
// .catch(error => {
// console.error('Error starting audio playback:', error.message);
// });
// }
// }
function showRegister(){
resetError();
document.getElementById('login').style.display = 'none';
document.getElementById('register').style.display = 'block';
// document.getElementById('log-password-server').style.display = 'block';
}
function showLogin(){
resetError();
document.getElementById('login').style.display = 'block';
document.getElementById('register').style.display = 'none';
}
function showHelp() {
document.getElementById('login').style.display = 'none';
document.getElementById('register').style.display = 'none';
document.getElementById('help').style.display = 'block';
}
function loginAttempt(){
const login = document.getElementById('log-login').value;
const password = document.getElementById('log-password').value;
// const passwordServer = document.getElementById('log-password-server').value; // добавлено получение пароля от сервера
resetError();
if(!login || login.length < 3){
return showError('Введите Логин');
}
if(!login || login.length > 15) {
return showError('Логин слишком длинный');
}
if(!password || password.length < 6){
return showError('Введите Пароль');
}
if(!password || password.length < 6){
return showError('Введите Пароль');
}
if (/^[а-яА-Я]+$/.test(password)) {
return showError('Пароль не должен содержать русские символы');
}
// if(passwordServer !== 'qHSoe333JdyakfuSSHd') { // проверка на пароль от сервера
// return showError('Неверный пароль от сервера');
// }
/*eslint-disable */
mp.trigger('loginAttempt', JSON.stringify({login, password}) );
}
function entEmail() {
resetError();
const email = document.getElementById('email').value;
if(email.length <= 5) {
return showError('Введите корректную почту');
} else {
mp.trigger('emailAttempt', email)
}
}
function registerAttempt(){
const login = document.getElementById('reg-login').value;
const password = document.getElementById('reg-password').value;
const passwordConfirm = document.getElementById('reg-password-confirm').value;
// const passwordServer = document.getElementById('log-password-server').value;
const email = document.getElementById('log-password-email').value;
resetError();
if(!login || login.length < 3){
return showError('Введите логин имеющий длину более 3-х символов.');
}
if(!email || email.length < 5){
return showError('Введите корректную почту.');
}
if(!password || password.length < 6){
return showError('Введите Пароль');
}
if(password != passwordConfirm){
return showError('Пароли не совпадают');
}
if (/^[а-яА-Я]+$/.test(password)) {
return showError('Пароль не должен содержать русские символы');
}
if (/^[а-яА-Я]+$/.test(login)) {
return showError('Логин не должен содержать русские символы');
}
if (/\s/.test(login)) {
return showError('Логин не должен содержать пробелы');
}
// if(passwordServer !== 'qHSoe333JdyakfuSSHd') { // проверка на пароль от сервера
// return showError('Неверный пароль от сервера');
// }
/*eslint-disable */
mp.trigger('registerAttempt', JSON.stringify({login, password, email}) );
}
function showChange() {
const change = document.getElementById('change');
document.getElementById('login').style.display = 'none';
change.style.display = 'block'
}
function showError(message){
const errorBlock = document.getElementById('error');
errorBlock.innerText = message;
errorBlock.style.display = 'block';
}
function resetError(){
const errorBlock = document.getElementById('error');
errorBlock.innerText = 'message';
errorBlock.style.display = 'none';
}
// function showPas() {
// document.getElementById('log-password-server').style.display = 'none';
// }
function fillLogin(setLogin) {
input = document.getElementById('log-login');
input.value = setLogin
}
document.addEventListener("keydown", (e) => {
switch (e.key) {
case "Enter":
const login = document.getElementById('log-login').value;
const password = document.getElementById('log-password').value;
// const passwordServer = document.getElementById('log-password-server').value; // добавлено получение пароля от сервера
resetError();
if(!login || login.length < 3){
return showError('Введите Логин');
}
if(!login || login.length > 15) {
return showError('Логин слишком длинный');
}
if(!password || password.length < 6){
return showError('Введите Пароль');
}
if (/^[а-яА-Я]+$/.test(password)) {
return showError('Пароль не должен содержать русские символы');
}
if (/^[а-яА-Я]+$/.test(login)) {
return showError('Логин не должен содержать русские символы');
}
// if(passwordServer !== 'qHSoe333JdyakfuSSHd') { // проверка на пароль от сервера
// // return showError('Неверный пароль от сервера');
// }
mp.trigger('loginAttempt', JSON.stringify({login, password}) );
break;
}
});
Серверная часть
JavaScript:
const mysql = require('mysql');
const bcrypt = require('bcrypt');
const saltRounds = 10;
let DB = false;
mp.events.add('packagesLoaded', () => {
DB = mysql.createConnection({host: 'localhost', user: 'mysql', password: 'mysql', database: 'rage-test'});
DB.connect(function(err){
if(err) return console.log('Ошиюка подключения: ' + err.stack);
console.log('Успешное подключение к базе данных');
});
});
mp.events.add('playerReady', player => {
player.call('showLoginDialog');
});
mp.events.add('onLoginAttempt', (player, data) => {
data = JSON.parse(data);
DB.query('SELECT * FROM accounts WHERE login = ? LIMIT 1', [data.login], function (err, results){
if( results.length == 0) return player.call('showAuthError', ['Неверный Логин и/или Пароль']);
const dbPassword = results[0].password;
bcrypt.compare(data.password, dbPassword).then(function(isMatched) {
if(isMatched) player.call('hideLoginDialog');
player.call('showAuthError', ['Неверный Логин и/или Пароль']);
});
});
});
mp.events.add('onRegisterAttempt', (player, data) => {
data = JSON.parse(data);
DB.query('SELECT id FROM accounts WHERE login = ?', [data.login], function(err, results){
if( results.length > 0) return player.call('showAuthError', ['Аккаунт с таким Логином уже существует']);
bcrypt.hash(data.password, saltRounds, function(err, passwordHash) {
DB.query('INSERT INTO accounts SET login = ?, password = ?', [data.login, passwordHash], function(err, results){
player.call('hideLoginDialog');
});
});
})
});