php代码有办法实现下面这种情况吗?
在页面上第一次提交用户名和密码,执行一条命令,触发二次验证,触发后,如果不填入验证码,执行那条命令的进程还在
第二次提交验证码,进入到第一次提交的进程,写入验证码,让第一次的进程继续执行
提交的页面如下:
以下我的这种写法是实现不了的,因为再执行一次的时候,exec执行的命令会重新发送一次验证码public function save()
{
$account = trim(input('param.account'));
if (!$account) {
$this->error('账号不能为空');
exit;
}
$password = trim(input('param.password'));
if (!$password) {
$this->error('密码不能为空');
exit;
}
$code = trim(input('param.code'));
if (AppIdInfo::check($account)) {
$this->error('账号已存在');
exit;
}
$bundleId = "com.iosdeveloper.test" . gen_uuid();
if (!$code) {
exec("/usr/local/bin/fastlane login user:{$account} pwd:{$password} bundleid:{$bundleId}", $out, $status);
$out = implode(',', $out);
if (stripos('Please enter the 6 digit code', $out) !== false) {
$this->error('需要二次验证,请输入验证码');
exit;
}
} else {
$command = "/usr/local/bin/fastlane login user:{$account} pwd:{$password} bundleid:{$bundleId}";
$fp = @popen($command, "w");
@fputs($fp, $code);
@pclose($fp);
}
$this->success('添加成功!', '/admin/Appid/index');
}
以及这个命令直接在服务器上执行的情况: