Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.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
Php 是否可以运行会话_destroy();按一下按钮?_Php - Fatal编程技术网

Php 是否可以运行会话_destroy();按一下按钮?

Php 是否可以运行会话_destroy();按一下按钮?,php,Php,是否可以运行session_destroy()点击一个按钮 我知道通常的用法是创建一个专用于它的页面,例如logout.php,并将按钮链接到该页面,但为了简单起见,不仅仅可以通过单击按钮来运行它吗?不能直接运行会话_destroy()在服务器上运行,您的按钮在客户端上运行 您可以做的是,在单击按钮时,通过Ajax调用logout.php 客户端: <script> $('#LogoutButton').click(function() { var reque

是否可以运行
session_destroy()点击一个按钮


我知道通常的用法是创建一个专用于它的页面,例如
logout.php
,并将按钮链接到该页面,但为了简单起见,不仅仅可以通过单击按钮来运行它吗?

不能直接运行<代码>会话_destroy()在服务器上运行,您的按钮在客户端上运行

您可以做的是,在单击按钮时,通过Ajax调用
logout.php

客户端:

<script>
    $('#LogoutButton').click(function() {
        var request = $.ajax({
            url: "/path/to/logout.php",
            type: "GET"
        });

        request.done(function(msg) {
            alert("Logged Out");
        });

        request.fail(function(jqXHR, textStatus) {
            alert("Error on Logging Out");
        });
    });
</script>
<button id="LogoutButton">Logout</button>

$(“#注销按钮”)。单击(函数(){
var请求=$.ajax({
url:“/path/to/logout.php”,
键入:“获取”
});
request.done(函数(msg){
警报(“注销”);
});
请求失败(函数(jqXHR,textStatus){
警报(“注销时出错”);
});
});
注销
Logout.php

<?php
session_destroy();
?>


不直接看待

<代码>会话_destroy()在服务器上运行,您的按钮在客户端上运行

您可以做的是,在单击按钮时,通过Ajax调用
logout.php

客户端:

<script>
    $('#LogoutButton').click(function() {
        var request = $.ajax({
            url: "/path/to/logout.php",
            type: "GET"
        });

        request.done(function(msg) {
            alert("Logged Out");
        });

        request.fail(function(jqXHR, textStatus) {
            alert("Error on Logging Out");
        });
    });
</script>
<button id="LogoutButton">Logout</button>

$(“#注销按钮”)。单击(函数(){
var请求=$.ajax({
url:“/path/to/logout.php”,
键入:“获取”
});
request.done(函数(msg){
警报(“注销”);
});
请求失败(函数(jqXHR,textStatus){
警报(“注销时出错”);
});
});
注销
Logout.php

<?php
session_destroy();
?>


关于

而不是AJAX答案,您可以将按钮包装在
元素中,然后将表单发布到同一页面。比如说

<form action="" method="post">
    <input type="hidden" name="logout" value="true" />
    <button>Logout</button>
</form>

这必须放在每个页面的开头,因此比AJAX答案要简洁一些,但不需要使用
注销。php
文件而不是AJAX答案,您可以将按钮包装在
元素中,然后将表单发布到同一页面。比如说

<form action="" method="post">
    <input type="hidden" name="logout" value="true" />
    <button>Logout</button>
</form>

这必须放在每个页面的开头,因此比AJAX的答案要简洁一点,但不需要使用
logout.php
file

call
logout.php
file使用AJAX和put
session_destroy()
在文件中,按钮需要发出AJAX请求。然后就可以做到了。(仍然可以在后台调用logout.php)单击按钮必须调用一些脚本来执行会话_destroy()如果您不想在浏览器中重新加载/加载另一个页面,那么无论您是调用脚本logout.php还是session_destroy.php,还是从_orbit.phpAgreed中使用nuke_it_-AJAX,都可以使用AJAX调用
logout.php
文件并放置
session_destroy()
在文件中,按钮需要发出AJAX请求。然后就可以做到了。(仍然可以在后台调用logout.php)单击按钮必须调用一些脚本来执行会话_destroy()如果你不想在浏览器中重新加载/加载另一个页面,那么无论你将脚本logout.php或session_destroy.php或nuke_it_from_orbit.phpAgreed-AJAX称为logout.php还是session_destroy.php,如果你不想在浏览器中重新加载/加载另一个页面,那么就应该使用AJAX。因此,根本不可能取消单独的
logout.php
?在客户端:不。当然,你可以在代码中加入简单的一部分,检查是否需要注销(例如
isset($\u GET['logout']){session_destroy()}
并使用参数
logout=1
调用您自己。因此根本不可能取消单独的
logout.php
?在客户端:不。确保您的代码中有简单的一部分,以检查是否需要注销(例如
isset($_GET['logout']){session_destroy();}
并使用参数
logout=1
调用您自己。您测试过吗?我测试过,我主要关心的是,它需要用户从页面导航以使更改生效。我已在销毁之前使用unset更新代码,该参数修复了该问题。只要在任何
$\u会话之前调用该参数,则依赖代码和在
会话之后\u start()
应该很好。你测试过这个吗?我测试过了,我主要担心的是,它需要用户从页面导航以使更改生效。我在销毁之前用一个unset更新了代码,它解决了这个问题。只要在任何
$\u会话
依赖代码之前和
会话启动之后调用它()
应该没问题