Я пытаюсь отобразить некоторую информацию, которую имею, используя вызов req.query.ID.Я думаю, что понимаю, почему он возвращается неопределенным, но я не знаю, верны ли мои предположения.Я могу получить желаемый результат, если я жестко закодирую значения в запросе, но не когда использую req.query.ID.
Это для школьного задания, так что инъекции sql и уязвимости - моя самая большая проблемапрямо сейчас.
app.post('/login', function(req, res) {
var sql = "Select * from UserInfo where UserEmail = '"+ req.body.UserEmailLogin +"'";
con.query(sql, function(error, results, fields){
if(error){
console.log(error);
}
console.log(results);
res.redirect('profile?ID=' + results[0].UserID);
})
});
app.get('/profile', function(req, res){
var sqlQuery = 'Select UserID, UserFirstName, UserLastName from UserInfo where UserID = ' + req.query.ID; +
' SELECT * FROM GroupCreate LEFT JOIN UserInfo ON UserInfo.UserID = GroupCreate.UserInfo_UserID LEFT JOIN GroupInfo ON GroupInfo.GroupID = GroupCreate.GroupInfo_GroupID Where UserInfo_UserID = ' + req.query.ID; +
' Select * from GroupInfo where GroupType = "Sports";'
con.query(sqlQuery, function(error, results, fields){
if(error) throw error;
res.render('profile', {
title: "Profile",
results: results[0],
results1: results[1],
results2: results[2],
Username: results[0].UserFirstName + " " + results[0].UserLastName
});
console.log(results[0]);
console.log(results[1]);
console.log(results[2]);
});
});
Проблема не исчезнет, если я жестко закодирую значение «1», где оба req.query.ID находятся в разделе app.get.
Параметр url в конечном итоге выглядит как http://localhost:3000/profile?ID=1, но результаты: результаты [1] и результаты: результаты: [2] возвращают неопределенное значение.