我是php7的新手,并且正在使用MVC。 这是故事: 服务器通过Ajax向用户发送一个keyCode(方法A)。然后,用户通过表格将keyCode发送到(方法B)。我已将keyCode保存到方法A中名为$ beforCode的属性中。现在,我想检查方法B中用户向我发送的keyCode。但是问题是方法BI无法获得我拥有的属性keyCode的值保存在方法A中。keyCode属性为空。
这是我的代码:
class Payment extends Controller{
public $keyCode = '';
function setUserKeyCode(){ /// method A
$code = $this->model->getKey();
$this->keyCode = $code;
/// echo $this->keyCode | $this->keyCode equaled with $code
echo $code; /// user get this by AJAX
}
function checkKeyCode(){ /// method B
$userSentCode = $_POST['meKey']; /// user send this by Form
$Key = $this->keyCode; /// echo $Key | $key = '' <--- problem
if ($clientCode == $key ) {
echo 'user is valid';
}
else {
echo 'user is NON-valid';
}
}
}
*****如果有人可以通过其他方式申请此职位,请告诉我。 谢谢大家
答案 0 :(得分:0)
这是因为ajax操作和用户的post操作不在同一个进程中,PHP对不同的请求使用了不同的进程。它不是同一个Payment对象,所以您无法获取密钥。
对于您的问题,我建议将键值保存到会话中。
session_start();
$_SESSION["code"]=$code;
并得到它:
session_start();
$code = $_SESSION["code"];