Есть ли способ узнать, вошел ли пользователь с помощью knockout js? Как я могу получить данные пользователя?
Я попробовал этот код,
var userId = '<%=HttpContext.Current.Session["user_session"] %>';
alert(userId);
Я положил это в виде модели. Но это не работает.
Вот запрашиваемый код PHP,
public function login($email,$pass)
{
try
{
$stmt = $this->db->prepare("SELECT * FROM accounts WHERE emailadd=:email LIMIT 1");
$stmt->execute(array(':email'=>$email));
$userRow=$stmt->fetch(PDO::FETCH_ASSOC);
if($stmt->rowCount() > 0)
{
if(password_verify($pass, $userRow['password']))
{
$_SESSION['user_session'] = $userRow['id'];
return true;
}
else
{
return false;
}
}
}
catch(PDOException $e)
{
echo $e->getMessage();
}
}
А вот код JS,
function homeViewModel(params) {
var self = this;
var userId = '<%=HttpContext.Current.Session["user_session"] %>';
alert(userId);
return self;
}
Если homeViewModel
определяется во внешнем файле JavaScript, тогда вы не можете выполнить php.
Вам придется сделать что-то похожее на следующее (не проверено).
1) index.php
<html>
<head>
<title>PHP Test</title>
<script type="text/javascript">
window.currentUser = '<%=HttpContext.Current.Session["user_session"] %>'
</script>
<script type="text/javascript" src="my-vm.js">
</script>
</head>
<body>
<p data-bind="text: user"></p>
</body>
</html>
2) my-vm.js
function homeViewModel(params) {
var self = this;
self.user = ko.observable(window.currentUser);
return self;
}
ko.applyBindings(new homeViewModel());
Сказав это, вы захотите рассмотреть, как вы управляете прицелом. Присоединение произвольных переменных к window
не хорошая идея идти вперед.
Других решений пока нет …