как избегать возвращаться (back) браузера, закрыв сеанса?

Duante мои поиски, я это не нашел какой-то работоспособный код. Если пользователь хочет закрыть сеанс, но освежив тогда появись снова в сайт соединенная. Я хочу предотвратить, "вернувшись" back или освежив. возможно?

мой код:

introducir la descripción de la imagen aquí

какой-то javascript нужен размещать что-то еще или php? я предпочитаю в коде PHP... спасибо.

2
задан 02.11.2016, 16:22
4 ответа

Эта функция разрушает тебе весь твой сеанс:

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;
1
ответ дан 24.11.2019, 12:46

Я бы это добавил немедленно после session_start():

if (!isset($_SESSION['usuario'])) {
    header('Location: index.php');
    exit();
}

А именно, если проверяют, что уже у тебя нет активного сеанса (потому что в завершении сеанса ты разрушил поле usuario глобальной переменной $_SESSION) он перешлет тебя в index.php или в какой-то другой сайт, который ты предпочитал бы.

Ты можешь использовать ту же логику в тех файлах, которые не должны быть соглашенными, если пользователь не инициализировал сеанс, и так же как продвижения в знании управления сеансов, ты будешь знать, что есть более утонченные способы это осуществлять.

1
ответ дан 24.11.2019, 12:46

если ты удаляешь куки-файлы?

здесь пример удаления куки-файлов

if (isset($_COOKIE['remember_user'])) {
    unset($_COOKIE['Hello']);
    unset($_COOKIE['HelloTest1']);
    setcookie('Hello', null, -1, '/');
    setcookie('HelloTest1', null, -1, '/');
    return true;
} else {
    return false;
}
0
ответ дан 24.11.2019, 12:46

Протестируй добавлять это на странице.

<?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>

Я сделал доказательство и функционируй. Привет

0
ответ дан 24.11.2019, 12:46
  • 1
    оно не функционирует, я это протестировал. – Lisandro Contreras 02.11.2016, 16:35
  • 2
    что редкий, если оно я функционирует, должен помещать мне header перед каждыми тобой c и # 243; я говорю. – Aquiles Perez 02.11.2016, 17:02
  • 3
    я это не размещаю наверху этих кодов также тестируя другие формы. Продолжи быть равным. Это пробовать и # 233; другой способ размещать правильно. – Lisandro Contreras 02.11.2016, 17:06
  • 4
    протестируй размещать это в ней p и # 225; gina login и в ней p и # 225; gina в ту, которую ты пересылаешь despu и # 233; s loguearte. – Aquiles Perez 02.11.2016, 17:09
  • 5
    Я перемещаю тебя более полный пример жди. – Aquiles Perez 02.11.2016, 17:15

Теги

Похожие вопросы