【发布时间】: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'])) 因此除了登录、注册新帐户或点击他们的重置密码链接并输入新密码之外,无法设置它。
请帮忙。
【问题讨论】: