[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Сессии
Страницы: 1, 2
XphpX
Решил подробнее познакомиться с сессиями, вдохновился мануалом (по сессиям там очень хорошо все объясняется). Но так как пока серьезных навыков программирования нет, самому трудно сделать как надо. Воспользовался подвернувшимся вовремя курсом из ютуба.

И вот почему-то в одном месте у меня не получается присвоить значение глобальной переменной сессии. Может поможет кто, если не трудно.


В 13 и 14 строчках кода не срабатывает присвоение
видеоурок

После аутентификации должны присваиваться две сессионные переменные и перебрасывать на страницу restricted1.php. А у меня: ни то, ни другое.

А вот код: (init.php)

<?php
use Parsclick\Sessions\PersistentSessionHandler;

require_once __DIR__ . '/Psr4AutoloaderClass.php';
require_once __DIR__ . '/db_connect.php';

$loader = new Psr4AutoloaderClass();
$loader->register();
$loader->addNamespace('Parsclick', __DIR__ . '/../../Parsclick');

$handler = new PersistentSessionHandler($db);
session_set_save_handler($handler);
session_start();
$_SESSION['active'] = time();


login.php
<?php
require_once './includes/init.php';

use Parsclick\Sessions\AutoLogin;

if (isset($_POST['login'])) {
$username = isset($_POST['username']) ? trim($_POST['username']) : null;
$pwd = isset($_POST['pwd']) ? trim($_POST['pwd']) : null;

$stmt = $db->prepare('SELECT pwd FROM `users` WHERE username = :username');
$stmt->bindParam(':username', $username);
$stmt->execute();
$stored = $stmt->fetchColumn();
if (password_verify($pwd, $stored)) {
session_regenerate_id(true);

$_SESSION['username'] = $username;
$_SESSION['authenticated'] = true;

if (isset($_POST['remember'])) {
// create persistent login
$autologin = new AutoLogin($db);
$autologin->persistentLogin();
}
header('Location: restricted1.php');
exit;
} else {
$error = 'Login failed. Check username and password.';
}
}

?>

<!doctype html>
<
html>
<
head>
<
meta charset="utf-8">
<
title>Auto Login</title>
<
style>
body {
background-color: #fff;
color: #1B1B1B;
font-family: "Lucida Grande", "Lucida Sans Unicode", Verdana, Arial, Helvetica, sans-serif;
margin-left: 50px;
}
label {
display: inline-block;
width: 5em;
text-align: right;
}
label[for=remember] {
width: auto;
}
</style>
</
head>

<
body>

<
h1>Persistent Login</h1>
<?php
if (isset($error)) {
echo "<p>$error</p>";
}
?>
<form action="<?= $_SERVER['PHP_SELF']; ?>" method="post">
<
p>
<
label for="username">Username:</label>
<
input type="text" name="username" id="username">
</
p>
<
p>
<
label for="pwd">Password:</label>
<
input type="password" name="pwd" id="pwd">
</
p>
<
p>
<
input type="checkbox" name="remember" id="remember">
<
label for="remember">Remember me </label>
</
p>
<
p>
<
input type="submit" name="login" id="login" value="Log In">
</
p>
</
form>
</
body>
</
html>
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.