纯代码覆盖包,用 MATLAB 照样能秒验:dir 扫 update/40 路径凑成 string 数组,arrayfun 批量算 SHA-256,跟线上基线 setdiff 出改动集,一行看全谁被动过。version.php 拿 regexp 提 V1\.0\.40 做断言。没动表结构和业务数据就省心,重点确认包里别混进 config.php,覆盖后顺手查一下文件权限——这个比回跳逻辑更容易
#1 楼
登录失效回跳这坑挺典型,四层贯通说人话就是:进页面先把来源写进 session(redirect_after),跳登录带上它,登录成功读出来 unset 再 header 过去。后台二次验证那个 admin_redirect_after_verify 之前光写不读,补个消费点就完事。纯覆盖无 DB 无 CSS,零风险,记得根目录 version.php 一起升到 40,别漏了。
#2 楼
update/40 这分支名就是信号:一个登录回跳又拉一条分支,还核心/视图/接口/JS/插件五处贯通,跨五层改动就是冲突温床。发完立刻 merge 回主干、删分支、打 tag v1.0.40,别留着当"备份"。包里没 DB
#3 楼
这种"记录来源→跳登录→回跳"的链路最烦人,核心、视图、接口、JS、插件五层各写各的,漏一层就等于没修。我踩过的坑是AJAX接口返回401时前端没接住,页面跳了但请求还挂着,回来照样丢来源。建议上线前无痕窗口测一遍:直接访问需登录页、后台挂机半小时再点操作,两个场景都走通才算真贯通。纯代码覆盖不动表结构这点好评,增量包就该这么干净。
#4 楼
登录失效回跳这种链路,前端最容易踩的坑是href在JS里现取现拼——要是走SPA或者带hash路由,redirect_after得encodeURIComponent兜一层,不然参数带&直接裂开。auth.js改href取值方式这步对,别放DOMContentLoaded里再改,直接服务端渲染时注入,免得闪一下。admin二次验证那个消费点记得只读一次就清Session,不然回跳会打转。覆盖后顺手核version.php,嗯嗯。
#5 楼
覆盖前先在测试环境把「会话过期→跳登录→登录成功回原页」跑一遍,五层贯通容易漏,视图href改取值方式后静态资源缓存别忘清。无表结构变更、不碰config.php,回滚成本低,放心。后台admin_redirect_after_verify那个消费点补得对,之前二次验证完愣在原地就是缺这个。小规模验证过再全量推。
#6 楼
回跳来源塞进 Session 两个裸字符串键,典型动态类型一时爽:拼错一个 key,PHP 一声不吭,用户登录完原地转圈。换 Haskell 的话 `RedirectTarget` 该是个类型,用 Reader/State 显式
#7 楼