【问题标题】:cookie won't delete on specific pagecookie 不会在特定页面上删除
【发布时间】:2011-06-30 10:28:09
【问题描述】:

我正在使用 htacess,现在我注意到我必须将 header.php 文件(包含在所有前端文件中)中的图像更改为http://mysite.com/images/image.gif,而不仅仅是“密码-重置”页面,否则图像不会显示在其上,但它们在所有其他页面上显示良好。不确定这是否相关,但可能是。

我的 htaccess 是:

RewriteEngine on
RewriteRule ^log-in$ log-in.php
RewriteRule ^register$ register.php
RewriteRule ^password-reset$ password-reset.php
RewriteRule ^password-reset/([a-zA-Z0-9]+)$ password-reset.php?key=$1
RewriteRule ^log-out$ log-out.php

在我的登录页面和注册页面上,一旦用户登录或创建新帐户,它就会设置 cookie 和会话。当用户通过密码重置页面重置密码时,它还会设置 cookie 和会话。

这是我在所有 3 个页面中使用的 cookie/会话设置代码:

$_SESSION['email'] = $email;
$_SESSION['password'] = $password;

if ($login_remember == 'yes')
{
    setcookie('email', $email, time() + 31536000);
    setcookie('password', $password, time() + 31536000);
}

现在,当我点击“注销”后,它会将我带到我的注销页面,下面是代码:

session_start();
session_destroy();

if (isset($_COOKIE['email']))
    setcookie('email', '', time() - 60);

if (isset($_COOKIE['password']))
    setcookie('password', '', time() - 60);

注销页面会破坏会话并将 cookie 设置为过期。这适用于除“密码重置”页面之外的每个页面。即使在我注销后,cookie 在密码重置页面上仍然有效。我不明白为什么。 cookie 和会话仅在按下表单按钮后设置。代码检查是否 (isset($_POST['form_submit'])) 因此除了登录、注册新帐户或点击他们的重置密码链接并输入新密码之外,无法设置它。

请帮忙。

【问题讨论】:

    标签: php .htaccess cookies


    【解决方案1】:

    将 cookie 路径设置为 '/' 修复了它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多