xiaochuanworld
- xiaochuanworld 2017-08-28 已签到连续签到2天,获得了10个金钱
- xiaochuanworld 回复了 xyf90314 的回答
createToken方法贴出来
@Jeen 我get参数的时候,没有用在ispost里面,在外面,有值,能GET到我想要的值,这个值就传不进去ispost里面,打印方法应该没问题呀,好着急~~“$post['Admin']['adminuser']=$adminuser”这句我把$adminuser改成字符串'admin',就能成功追加并打印
- xiaochuanworld 回复了 假装是大佬 的回答
你用的是post方法提交,你用$_get接受,怎么会没有问题,建议你检查这一句$post=Yii::$app->request->post();
我用get是get浏览器地址上的参数,第一个$adminuser= Yii::$app->request->get('adminuser'),这里能拿到我想要的数据,然后我的表单是用POST提交的,POST能接收到表单的参数并且打印成功,就是我自己追加的数据里面“$post['Admin']['adminuser']=$adminuser”这句,$adminuser 这个值没有传进去,为"NULL",我把$adminuser改成字符串,就能成功追加
- xiaochuanworld 赞了回答
$post['Admin']['adminuser']=$adminuser
$adminuser
有值没?$post['Admin']
这个数据存在不? - xiaochuanworld 回复了 mercis 的回答
你看看你的 第一个if里面打印$post,有没有进第二个if
这个POST有进第二个IF的,因为我POST的表单有两个字段有值,就如adminpass:123123,readminpass:123123
- xiaochuanworld 回复了 koko 的回答
$post['Admin']['adminuser']=$adminuser
$adminuser
有值没?$post['Admin']
这个数据存在不?有执行的,我是采用AJAX的post提交的表单,,如果我将$post['Admin']['adminuser']=$adminuser; 里面的$adminuser改成 字符串‘admin1’,就能够打印出来数组$post['Admin']['adminuser']=‘admin1’。
- xiaochuanworld 赞了回答
$adminuser= Yii::$app->request->get('adminuser'); //有值
$token= Yii::$app->request->get('token');
$mytoken=$model->createToken($adminuser,$timestamp); //so排除系统因素, 值在这个方法里面应该被修改了
。。。。
$post['Admin']['adminuser']=$adminuser; //值变成了 null看了下其它回答,首先不要怀疑 get和post的混用, 这个没有任何问题。
最开始拿到值了,后面变成null,所以你只需要找到 $adminuser 这个变量在哪个地方被篡改了 就可以解决问题了
如上所述,建议检查 createToken 方法,看看是不是引用传参 ..--------------补充分割线
反复沟通后,确认了问题在于: 提交找回密码的post请求中,没有附带相关的get参数。
在这边补充备注一下,希望对碰到同类问题的phper有帮助。
有兴趣的朋友推荐了解下 http协议中 get 与 post请求的差异
就不单独回复了 - xiaochuanworld 赞了回答
你用的是post方法提交,你用$_get接受,怎么会没有问题,建议你检查这一句$post=Yii::$app->request->post();
- xiaochuanworld 回复了 xyf90314 的回答
createToken方法贴出来
public function createToken($adminuser,$time)
{ return MD5(MD5($adminuser).base64_encode($this->getIP()).MD5($time)); }
这个没毛病的