【问题标题】:Unable to logout in PHP无法在 PHP 中注销
【发布时间】:2013-01-24 13:13:53
【问题描述】:

我已经编辑了我的.htaccess 文件,因此mydomain.com/events.php?slug=1234 表单的页面变为mydomain.com/events/1234

以下是来自events.php的代码:

我的登出代码在下面<body>:

 <?php if(isset($_SESSION['id'])){?>
     <a href="?<?php echo $url; ?>&logout" ><button>Log Out</button></a>
 <?php } ?>

而且,在页面的开头,我有:

<?php
define('INCLUDE_CHECK',true);
require_once('13/functions/db.php');
session_name('tryst1');
session_set_cookie_params(3*7*24*60*60);
session_start();

$userid = $_SESSION['id'];
$useremail = $_SESSION['email'];
$username = $_SESSION['name'];
    $slug = $_GET['slug'];
    $url="http://mydomain.com/events/".$slug."/";
if(isset($_GET['logout']))
{
    $_SESSION = array();
    session_destroy();
    header('Location: ' . $url);
    exit;
}

但是,我无法退出,显示的 URL 是:http://www.mydomain.com/events/1234/?http://domain.com/events/1234/&amp;logout

需要帮助。我做错了什么?

我的events.php的起始php代码是::http://dpaste.com/915935/

我的.htaccess 文件位于:: http://dpaste.com/915939/

【问题讨论】:

  • @PeterSzymkowski:是的。我随机选择了一个名字。当我没有编辑 .htaccess 文件时,注销工作。
  • $url 嵌入到注销链接时一定是错误的。当您将鼠标悬停在浏览器中的链接上时,您会得到什么?可能是那个“错误”的网址。检查 $url 的构建位置。
  • @PeterSzymkowski:那么,我应该删除整个session_name('tryst1'); 部分吗?我不想让其他人退出。
  • @xan 没关系,我在考虑 session_id。 :)

标签: php .htaccess session logout


【解决方案1】:

所以你的链接是

href="?http://mydomain.com/events/".$slug."/&logout"

你看到错误了吗?尤其是一开始的??将其修复为:

href="<?php echo $url; ?>?logout"

【讨论】:

  • 我仍然无法注销。我删除了session_name 行。登出后,URL变成:http://www.mydomain.com/events.php?slug=1234,我还是登陆了。
  • 所以你在其他地方还有另一个问题。除了 htaccess 之外,我在您的问题中看不到 events.php
  • 顺便说一句 &lt;a href=".."&gt;&lt;button&gt;&lt;/button&gt;&lt;/a&gt; 不是有效的 HTML
  • &lt;button&gt;,请提交您的表格。正如我所说,您不能将&lt;button&gt; 放在&lt;a&gt;&lt;/a&gt; 之间
  • 没有form。只是一个&lt;button&gt; 元素。我尝试删除 &lt;button&gt; 部分。还是同样的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-08-01
  • 2013-06-18
  • 2013-07-15
  • 2012-01-21
  • 2018-02-21
  • 2018-01-14
  • 1970-01-01
相关资源
最近更新 更多