Делать что-либо, когда пользователь уходит со страницы, - неправильный подход, потому что вы не знаете, перейдет ли пользователь на совершенно другую страницу (скажем, contact.php ради аргумента) или он / она просто перейдите на следующую страницу abc.php, и, как указал Бореалид, без JS это сделать невозможно. Вместо этого вы можете просто добавить проверку и посмотреть, приходит ли пользователь из abc.php:
Во-первых, в вашем файле abc.php установите уникальную переменную в массиве $ _SESSION, которая будет действовать как отметка о том, что пользователь был на этой странице:
$_SESSION['previous'] = basename($_SERVER['PHP_SELF']);
Затем добавьте это на всех страницах, перед тем как вывести какие-либо данные, чтобы проверить, пришел ли пользователь из abc.php:
if (isset($_SESSION['previous'])) {
if (basename($_SERVER['PHP_SELF']) != $_SESSION['previous']) {
session_destroy();
### or alternatively, you can use this for specific variables:
### unset($_SESSION['varname']);
}
}
Таким образом, вы уничтожите сеанс (или определенные переменные), только если пользователь приходит из abc.php и , текущая страница отличается от другой.
Надеюсь, я смог это четко объяснить.