Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从下拉菜单中单击注销时销毁会话变量_Javascript_Php_Jquery_Session - Fatal编程技术网

Javascript 从下拉菜单中单击注销时销毁会话变量

Javascript 从下拉菜单中单击注销时销毁会话变量,javascript,php,jquery,session,Javascript,Php,Jquery,Session,我在多个页面上使用标题。我有一个下拉菜单,用户可以从中选择注销。单击注销后,我想销毁会话变量 在下拉菜单中单击注销后,如何运行PHP 这是我的下拉菜单: <ul class="dropdown-menu"> <li><a href="#">Register User</a></li> <li><a href=#">View Access List</a></li>

我在多个页面上使用标题。我有一个下拉菜单,用户可以从中选择注销。单击注销后,我想销毁会话变量

在下拉菜单中单击注销后,如何运行PHP

这是我的下拉菜单:

<ul class="dropdown-menu">  
    <li><a href="#">Register User</a></li>
    <li><a href=#">View Access List</a></li>
    <li><a href="logout.php">Logout</a></li>    
</ul>
您可以将logout.php设置为:

<?php

    session_start();
    unset($_SESSION);
    session_destroy();

    header("Location:index.php?message=logout");

?>
这是一个简单的示例,但您可以根据需要对其进行增强。

您的logout.php文件必须包括:

<?php
    session_start();
    session_destroy(); // ALL sessions of your site will be destoryed
    header("location: index.php?do=logout"); // or where ever you want to redirect the user
?>

如果您有多个用户,最好在销毁会话之前保存用户id:

session_start();
$id = $session['User_id'];//user have user_id attribute
unset($_SESSION);

header("Location:index.php?message=logout?id=$id");

您不能在onclick中运行PHP,因为呈现PHP时,它不会查找调用它的事件,而是执行它被告知要执行的操作。因此,在onclick事件中运行session_destroy不会等待单击,而是在加载页面时会销毁会话。尝试创建另一个PHP文件,然后将注销链接链接到该页面,然后在那里执行PHP,然后使用header函数将页面重定向到另一个页面


希望这能解决您的问题

它已经在运行了。当浏览器请求page.session\u销毁时,将调用logout.php中的代码;在logout.php中,将其重定向到主文件