你有三种一般方法:
>将上一页存储在会话中;
>将页面存储为GET变量;要么
>对登录页面进行内部重定向.
(1)看起来像:
<?PHP session_start(); if (!$_SESSION['userid']) { $_SESSION['page'] = '/contact'; header('Location: /login'); exit; } ... ?>
成功登录后,可以检索$_SESSION [‘page’]并重定向.
(2)类似,除了没有会话变量.相反,你有:
header('Location: /login?return=/contact');
通过重定向登录页面必须将其作为隐藏的表单字段包含在页面上,向用户显示用户名和密码的请求.
(3)类似,但不会重定向到单独的页面.相反,每个页面都可能是一个登录页面.如果用户没有登录登录表单.网址仍然是“/ contact”.每个页面都将检测并处理登录尝试.
这种方法的优点是少一点外部重定向,它更容易处理提交的表单.这样我就意味着想像有人在你的一个页面填写一个表单,然后点击提交.系统看到他们的登录已经过期.如果您将用户重定向到新页面,然后重新导向,则可能需要重新输入所有表单字段.如果您隐含处理登录,您可以将所有表单字段作为隐藏输入,并将其登录无缝地视为原始页面的提交.