我正在使用zend中的忘记密码模块。我想要将'memcode'用户发送到控制器,以便我可以传递查询以重置密码。在zend中将数据从视图传递到控制器
ForgotController.php
public function changepasswordAction()
{
$post = $this->request->getPost();
$dbAdapter=$this->getServiceLocator()->get('Zend\Db\Adapter\Adapter');
$form = new ForgotForm($dbAdapter);
$project = new Projects();
$id=$this->params()->fromQuery('id');
$viewModel = new ViewModel(array('form' =>$form));
return $viewModel;
}
public function resetAction()
{
$pswd = $this->getRequest()->getPost('password');
$id=$this->params()->fromRoute('id',0);
echo $id;
$sql="UPDATE projects set password = '".$pswd."' where memcode = '".$id."'";
$statement = $dbAdapter->query($sql);
$result = $statement->execute();
}
视图代码:changepassword.phtml
echo $_GET['id'];
$form = $this->form;
$form->setAttribute('action', $this->url(NULL,array('controller'=>'Forgot', 'action' =>'reset','id'=>$_GET['id'])));
$form->setAttribute('method', 'post');
$form->prepare();
echo $this->form()->openTag($form);?>
<h4>Set new password</h4>
<p> Welcome! <?php //echo $this->user_email; ?> </p>
<table>
<tr>
<td><dt><?php echo $this->formLabel($form->get('password')); ?></dt>
<dd><?php
echo $this->formElement($form->get('password'));
echo $this->formElementErrors($form->get('password'));
?></dd></td></tr>
<tr>
<td><dt><?php echo $this->formLabel($form->get('confirm_password')); ?></dt>
<dd><?php
echo $this->formElement($form->get('confirm_password'));
echo $this->formElementErrors($form->get('confirm_password'));
?></dd></td></tr>
<tr>
<td><dt><?php echo $this->formElement($form->get('submit'));
echo $this->formElementErrors($form->get('submit'));
?></dd></td></tr>
</table>
</dd>
</section>
如何通过我通过“$ _GET [ '身份证']到控制器resetAction function.Now获得ID我得到O作为它的值?
$ _GET不是你应该在ZF2中使用过的东西。更新密码的方式非常危险,因此我建议您检查一下密码安全性。现在的情况是,你会受到SQL注入的危害。 – Sam 2014-10-08 06:20:11