假设我想导航到联系页面.但为了到达那里,该网站要求我登录.登录后,我应该被重定向到联系页面,但我在其他地方.我该怎么做才能在登录后将其重定向到我想要的页面?
我有一种强烈的感觉,这与会议有关,但仍然如此.该方法应该是什么?
cle*_*tus 10
你有三种一般方法:
(1)看起来像:
<?php
session_start();
if (!$_SESSION['userid']) {
$_SESSION['page'] = '/contact';
header('Location: /login');
exit;
}
...
?>
Run Code Online (Sandbox Code Playgroud)
成功登录检索$_SESSION['page']和重定向.
(2)类似,只是没有会话变量.相反,你有:
header('Location: /login?return=/contact');
Run Code Online (Sandbox Code Playgroud)
传递重定向.登录页面必须将其作为隐藏的表单字段包含在页面上,向用户显示用户名和密码的请求.
(3)类似但不重定向到单独的页面.相反,每个页面都可能是登录页面.如果用户未登录,则会显示登录表单.该URL仍为"/ contact".每个页面都将检测并处理登录尝试.
此方法的优点是减少外部重定向,并且更容易处理提交的表单.我的意思是,假设有人在您的某个页面上填写表单,然后单击"提交".系统看到他们的登录已过期.如果您将用户重定向到新页面然后重定向回来,他们可能需要重新输入所有表单域.如果您隐式处理登录,则可以将所有表单字段包含为隐藏输入,并且一旦登录就无缝地将其视为原始页面的提交.