帝国 CMS 会员登录跳转设置

域名注册
域名注册 正式会员超兽战士 👑年卡会员
发布于 2026-10-07 14:14 ·1 浏览 ·0 回复

学会这篇,你就能让帝国 CMS 的会员在登录后跳到你指定的页面,而不是傻乎乎地停在登录页或者跳回首页。下面按操作顺序一步步来。

第一步:先搞清楚默认跳转逻辑

帝国 CMS 默认的会员登录流程是:用户提交账号密码 → 系统验证 → 跳转到「登录后返回地址」。这个地址由登录表单里的 ecmsfrom 参数决定,如果这个参数为空,系统就跳到会员中心首页(/e/member/cp/)。

所以你要控制跳转,核心就是控制这个 ecmsfrom 参数的值。先明确一点:帝国 CMS 的会员登录相关模板都在后台「模板」→「会员模板」里管理,不同版本菜单名称略有差异,本文以帝国 CMS 7.5 为准。

第二步:设置全站默认登录后跳转页

这一步要做的是:不管用户从哪登录,只要没特殊指定,登录后都跳到你想要的页面。

进入后台,找到「系统」→「系统设置」→「会员参数设置」,在页面里找到「会员登录后默认转向地址」这一项。填入你要的地址,比如 /e/member/cp/ 是会员中心,想跳首页就填 /,想跳某个专题页就填完整相对路径如 /zt/vip/。

填完点页面底部的「提交」保存。这个设置是全站默认值,只有登录表单没传 ecmsfrom 时才生效。

注意:这里的地址要用相对路径(以 / 开头),别填 http://你的域名/xxx 这种绝对地址,否则换域名后全部失效。

第三步:在登录表单里指定跳转地址

如果你希望某个页面的登录框跳 A 页,另一个页面的登录框跳 B 页,就得在表单里手动传参。

找到你的登录表单模板,通常在「模板」→「会员模板」→「登录模板」(文件名类似 login.php 对应的模板)。在 <form> 标签内、账号密码输入框旁边加一个隐藏域:

<input type="hidden" name="ecmsfrom" value="/e/member/cp/">

把 value 改成你要跳转的目标地址即可。这样从这个表单登录的用户,登录成功后就会跳到这个地址。

注意:ecmsfrom 的值如果带了特殊字符(比如 ?、&),要做 URL 编码,否则参数会被截断。例如跳转到 /e/member/cp/?type=2,应写成 /e/member/cp/%3Ftype%3D2。

第四步:登录后跳转到上一页

很多站点想要的效果是:用户从哪来的,登录后回哪去。做法是把当前页面地址动态写进 ecmsfrom。

在登录模板里,把隐藏域的 value 改成动态输出:

<input type="hidden" name="ecmsfrom" value="<?=$ecmsfrom?>">

同时在调用登录页的链接上带上来源,比如:

/e/member/login/?ecmsfrom=<?=urlencode($_SERVER['REQUEST_URI'])?>

这样用户在文章页点「登录」,登录完就回到那篇文章页。

注意:帝国 CMS 出于安全考虑会对 ecmsfrom 做过滤,只允许站内地址。如果你发现传了外部网址结果跳回首页,那就是被拦了,这是正常的防钓鱼机制,别去改。

第五步:验证是否生效

改完后清一次缓存:后台「系统」→「数据更新」→「更新缓存」,勾选全部更新。然后用一个测试会员账号实际登录一遍,看跳转是否符合预期。如果没跳对,按这个顺序排查:登录表单有没有正确传 ecmsfrom → 会员参数设置里的默认地址填对没有 → 缓存清了没有。

小结

  • 帝国 CMS 登录跳转由 ecmsfrom 参数控制,为空时用后台默认值。
  • 全站默认跳转在「会员参数设置」的「会员登录后默认转向地址」里改。
  • 单页面跳转在登录表单加 <input type="hidden" name="ecmsfrom" value="目标地址">。
  • 地址用相对路径,带特殊字符要 URL 编码,只能跳站内。
  • 改完必须更新缓存再测试。
版权声明:本文来自 GJ站长论坛《帝国 CMS 会员登录跳转设置》
原文链接:https://www.gj0.com/thread-336.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。

全部回复 0

还没有回复,来抢沙发~