我正在使用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