在回声中取消设置会话导致问题

时间:2013-12-22 15:56:11

标签: php

我收到以下错误,无法弄清楚原因。我已经盯着这个太久了..

错误:

Parse error: syntax error, unexpected T_UNSET in blah/blah/blah

我的代码:

基本上,我试图让用户通过点击链接清除会话。不知道我的语法在哪里出错......任何帮助都会非常感激!

注意:是的,我的代码在php块中

echo "<span><a href='" . unset($_SESSION['vertical']) . "'>clear "
 . $vertical . "</a></span>";

提前致谢!

3 个答案:

答案 0 :(得分:3)

页面加载完成后,您无法调用PHP函数。 PHP是一种服务器端技术,可在服务器上运行,而不是在客户端的计算机上运行。这意味着,如果不将详细信息发送到脚本,您将无法调用PHP函数。

如果您在用户点击链接时尝试触发unset功能,则可以创建指向您取消设置$_SESSION变量的脚本的链接:

<span><a href='somepage.php?somevar=42'>foo</a></span>

当用户点击该链接时,系统会将其转到somepage.php。现在,您可以检查是否设置了somevar密钥,然后在脚本中unset会话:

<?php
session_start();

if (isset($_GET['somevar'])) {
    unset($_SESSION['vertical']);
}

如果您想在没有页面刷新的情况下执行此操作,那么您可能需要查看AJAX

答案 1 :(得分:0)

当您在会话中写unset($_SESSION['x'])时,x将被删除。它会立即执行。您应该提供一个链接到一个将进行取消设置的页面。

如果要在同一页面中清除会话变量,则需要对另一个具有代码unset($_SESSION['x'])的页面进行AJAX调用。

答案 2 :(得分:0)

你应该这样做:

 <a href="sessiondestroy.php">Clear " . $vertical . "</a>

 and in clearsession.php write:

  <?php

  session_start();

  unset($_SESSION['vertical']);

  ?>

 Let me know what happened?