php代码有办法实现下面这种情况吗?
在页面上第一次提交用户名和密码,执行一条命令,触发二次验证,触发后,如果不填入验证码,执行那条命令的进程还在
第二次提交验证码,进入到第一次提交的进程,写入验证码,让第一次的进程继续执行
回答
php在触发客户端二次验证之前已经结束了。
建议你了解一下CS(客户端服务器)模式。
如果只是你当前这个业务场景,换个思路,直接把这个业务逻辑拆成两部分就可以了,因为用户提交用户名和密码之后到第二次提交验证码之前,你后台也没有其它业务要运行,为啥希望这个进程一直存在呢?
第一次输入用户名和密码,通过用户名查询出来用户需要二次认证,返回需要二次认证的响应,同时看你想法,进程一结束.
页面收到需要二次认证的请求后,在密码下面加上验证码逻辑,请求二步认证的时候,把用户,密码,验证码 一起传回来,进行验证码和密码的校验.
密码的校验,看你需求,你可以在第一次请求的时候就验证密码是否通过,也可以像上面说的,放到第二步一起认证
你的目的只是想保留验证场景。可以通过数据存储(mysql,redis之类的)保存验证流程的场景数据。不需要用到常驻进程。