Как вы можете отслеживать статус входа через PHP?
Я включаю следующую страницу в каждую свою страницу, чтобы проверить статус входа в систему. Я пытаюсь идентифицировать пользователя после того, как он входит в систему с помощью cookie.
Однако мне не удалось прочитать мой login_cookie или использовать его каким-либо образом.
Код handle_login_status.php , где я манипулирую состоянием входа в систему
<?php
$dbconn = pg_connect("host=localhost port=5432 dbname=masi user=masi password=123");
//1. read the first word in Cookie of the form
//"email@gmail.com,ca05106e445c15197f7213bc12648524
//Then, store this word to $email
$cookie_tripped = explode(",", $_COOKIE['login_cookie']);
$email = $cookie_tripped[0];
$result = pg_prepare($dbconn, "query1", 'SELECT passhash_md5 FROM users
WHERE email = $1;');
$result = pg_execute($dbconn, "query1", array($email));
if(!$result) {
exit;
}
// to take the passhash out of the cookie
$passhash_md5_cookie = $cookie_tripped[1];
if($result == $passhash_md5_cookie) {
$result = pg_prepare($dbconn, "query7", "UPDATE users SET logged_in = $1
WHERE email = $2;");
$result = pg_execute($dbconn, "query7", array("true", $email));
$logged_in = true;
}
else {
$result = pg_execute($dbconn, "query7", array("false", $email));
$logged_in = false;
}
Я установил cookie в обработчике формы входа в систему.
Объявление login_cookie на handle_login_form.php
global $login_cookie;
$login_cookie = $_POST['email'] . ',' . md5($_POST['password']);
$result = pg_prepare($dbconn, "query3", 'SELECT passhash_md5
FROM users WHERE email = $1;');
$result = pg_execute($dbconn, "query3", array($_POST['email']));
while ($row = pg_fetch_row($result)) {
$password_original = $row[0];
}
$login_cookie_original = $_POST['email'] . ',' . md5($password_original);
if ( $login_cookie_original == $login_cookie )
{
setcookie("login_cookie", $login_cookie);
header("Location: /codes/index.php?ask_question");
die("logged in");
}