我正在尝试使用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');
?>
}
}
答案 0 :(得分:2)
你可以这样做:
function logoutck() {
var r = confirm("Do you really want to log out?");
if (r) {
window.location.href = 'http://site.com/logout.php'
}
}
答案 1 :(得分:2)
根据我的理论和http://pastebin.com/439xPdJN
上的Pastebin.com文件这是一个包含2个文件的工作演示,以及一个示例,以向您展示它可以完成。
修改以适应。
首先,有关如何使用它的一些说明:
您需要重新加载页面(session1.php)几次才能获得数字。
然后,一旦确认退出按钮,您将注意到页面视图计数将返回ZERO。
为他的JS示例提供信用证(felipsmartins)。
代码:
我们称之为 session1.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");
?>
答案 2 :(得分:1)
答案 3 :(得分:0)
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文件(除非此脚本还包含转发到另一个脚本)