Duante мои поиски, я это не нашел какой-то работоспособный код. Если пользователь хочет закрыть сеанс, но освежив тогда появись снова в сайт соединенная. Я хочу предотвратить, "вернувшись" back или освежив. возможно?
мой код:
какой-то javascript нужен размещать что-то еще или php? я предпочитаю в коде PHP... спасибо.
Эта функция разрушает тебе весь твой сеанс:
function destroySession() {
$_SESSION = [];
if (ini_get('session.use_cookies')) {
$params = session_get_cookie_params();
setcookie(session_name(),
'',
time() - 42000,
$params['path'],
$params['domain'],
$params['secure'],
$params['httponly']);
}
@session_destroy();
}
В твоем файле cerrar.php:
<?php
require_once('todas_tus_funciones.php');
session_start();
destroySession();
header('Location: index.php');
exit;
Я бы это добавил немедленно после session_start()
:
if (!isset($_SESSION['usuario'])) {
header('Location: index.php');
exit();
}
А именно, если проверяют, что уже у тебя нет активного сеанса (потому что в завершении сеанса ты разрушил поле usuario
глобальной переменной $_SESSION
) он перешлет тебя в index.php
или в какой-то другой сайт, который ты предпочитал бы.
Ты можешь использовать ту же логику в тех файлах, которые не должны быть соглашенными, если пользователь не инициализировал сеанс, и так же как продвижения в знании управления сеансов, ты будешь знать, что есть более утонченные способы это осуществлять.
если ты удаляешь куки-файлы?
здесь пример удаления куки-файлов
if (isset($_COOKIE['remember_user'])) {
unset($_COOKIE['Hello']);
unset($_COOKIE['HelloTest1']);
setcookie('Hello', null, -1, '/');
setcookie('HelloTest1', null, -1, '/');
return true;
} else {
return false;
}
Протестируй добавлять это на странице.
<?php
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header('Content-Type: text/html');
Это был бы код страницы, которая делает login, в моем случае он называется test2.php
<?php
/**
* Created by PhpStorm.
* User: AQUILES PEREZ
* Date: 21/04/2016
* Time: 08:19 AM
*/
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header('Content-Type: text/html');
if(isset($_COOKIE['test'])){
header("Location: inicio.php");
}
if(isset($_GET['crea'])){
setcookie('test',"misession",null);
header("Location: inicio.php");
}
?>
<html>
<head>
<title>test</title>
</head>
<body>
<button id="test" onclick="test()">test</button>
<script>
function test(){
document.location.href="test2.php?crea=1"
}
</script>
</body>
</html>
Adicionalmente, когда ты logeas ты пересылаешь в главную страницу, где у меня есть следующее: Файл Inicio.php:
<?php
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header('Content-Type: text/html');
?>
<html>
<head>
<title>inicio</title>
</head>
<body>
<h3>Inicio la wea</h3>
</body>
</html>
Я сделал доказательство и функционируй. Привет