JavaScript — Как проверить, если пользователь вошел в систему с помощью нокаута

Есть ли способ узнать, вошел ли пользователь с помощью 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;
}

0

Решение

Если 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 не хорошая идея идти вперед.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]