使用javascript注销php会话
logout php session using javascript
我正试图使用javascript注销php会话。它不起作用——javascript函数被调用,if语句也起作用,但php脚本没有被调用。有更好的方法吗?我使用的是一个.php页面。
function logoutck()
{
var r = confirm("Do you really want to log out?");
if (r==true)
{
<?php
session_start();
session_destroy();
header('Location: login.php');
?>
}
}
根据我的理论和Pastebin.com上的文件http://pastebin.com/439xPdJN
下面是一个包含2个文件的工作演示,以及一个示例,以向您展示它是可以做到的。
修改以适应
首先,关于如何使用它的一些说明:
您需要重新加载页面(session1.php)几次才能获得数字。
然后,您会注意到,一旦您确认注销按钮,页面浏览次数将返回零。
他的JS例子值得称赞:(felipsmartins)
代码:
让我们将此会话1.php文件称为
<?php
session_start();
if(isset($_SESSION['views']))
$_SESSION['views'] = $_SESSION['views']+ 1;
else
$_SESSION['views'] = 1;
echo "views = ". $_SESSION['views'];
?>
<!doctype html>
<head>
</head>
<body>
<script type="text/javascript">
function logoutck() {
var r = confirm("Do you really want to log out?");
if (r) {
window.location.href = 'logout.php'
}
}
</script>
<input id="button1" type='button' onclick='logoutck();' value='LOGOUT'/>
</body>
</html>
让我们称之为logout.php文件
<?php
session_start();
if(isset($_SESSION['views']))
unset($_SESSION['views']);
header("Location: session1.php");
?>
您可以这样做:
function logoutck() {
var r = confirm("Do you really want to log out?");
if (r) {
window.location.href = 'http://site.com/logout.php'
}
}
它将不起作用,因为javascript
在客户端运行,PHP
在服务器端运行。
您可以使用AJAX
调用销毁会话。
有关如何从javascript 终止会话的更多信息
javascript、html和php的工作原理:
服务器首先从上到下执行php脚本。它执行脚本中的所有语句,并构建一个html页面,使<?php echo '<h1>hello world<h1/>'; ?>
变成<h1>hello world<h1/>
。当服务器执行完所有内容后,它将返回创建的html页面。
这个页面然后被浏览器加载,然后当浏览器看到javascript命令时,它会尝试执行它。因此,当javascript命令被执行时,就没有更多的php命令了,因为php服务器已经执行了它们,并从中生成了html视图。
以下语句对于php服务器是相同的
<?php echo '<h1>hello world<h1/>'; ?>
<?= '<h1>hello world</h1>';
<h1>hello world</h1>
请注意,当执行php脚本时,您将转到login.php
,因为在html视图返回到客户端之前,服务器header('Location: login.php');
会执行此命令。这意味着当您加载此php脚本时,客户端将收到login.php
创建的html文件(除非此脚本还包含转发到另一个脚本)
- Php未获取会话的最新值
- 当达到codeigniter/tank auth会话超时时,在ajax调用中处理php重定向
- PHP会话页面刷新不起作用
- 如何使用 php 会话变量作为 Angular Js 数据
- jquery中设置的会话无法进入php
- 通过Javascript更改PHP会话变量
- PHP会话ID变量与AJAX一起返回
- 从javascript变量获取php会话
- 无法获取php会话变量以在javascript中设置var
- 使用Jquery在页面加载上测试php会话变量
- 如何在 PHP 和 JS 中的并发会话之间进行通信
- Fetch Api无法从PHP服务器获取会话
- 如何在php中传递带有JSON响应的会话对象
- PHP未通过javascript代码访问会话变量集
- 需要将一个值从javascript变量保存到php会话
- PHP会话在Aurelia中不起作用
- 通过AJAX将会话变量传递到PHP文件
- 在php中完成会话后重定向
- 如何将会话 php 数据从 PHP 传输到 JS
- 如何从会话PHP中获取jQuery ID