cookie不会在特定页面上删除

时间:2011-06-30 01:51:47

标签: php .htaccess cookies

我正在使用htacess,现在我注意到我必须将我的header.php文件(包含在所有前端文件中)中的图像更改为http://mysite.com/images/image.gif,而不仅仅是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']))所以除了登录,注册新帐户或按照他们的重置密码链接并输入新密码之外,不能设置它。 / p> 请帮忙。

1 个答案:

答案 0 :(得分:1)

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