Php 需要了解getRequest()Zend框架的帮助吗

Php 需要了解getRequest()Zend框架的帮助吗,php,zend-framework,forms,Php,Zend Framework,Forms,我正在做这个教程: 我们正在使用POST构建一个简单的输入表单,并将其提交到mySQL数据库。一切正常。我只是想了解一下getRequest()函数 在控制器中,我们有: public function registerAction() { $request = $this->getRequest(); $this->view->assign('action',"process"); $this->view->assign('title

我正在做这个教程:

我们正在使用POST构建一个简单的输入表单,并将其提交到mySQL数据库。一切正常。我只是想了解一下getRequest()函数

在控制器中,我们有:

public function registerAction()
 {
    $request = $this->getRequest();

    $this->view->assign('action',"process");
    $this->view->assign('title','Member Registration');
    $this->view->assign('label_fname','First Name');
    $this->view->assign('label_lname','Last Name'); 
    $this->view->assign('label_uname','User Name'); 
    $this->view->assign('label_pass','Password');
    $this->view->assign('label_submit','Register');     
    $this->view->assign('description','Please enter this form completely:');        
}
然后考虑到:

 <form name="register" method="post" action="<?php echo $this->escape($this->action)?>">
  <table>
    <tr>
      <td><?php echo $this->escape($this->label_fname)?></td>
      <td><input type="text" name="first_name"></td>
    </tr>
    <tr>
      <td><?php echo $this->escape($this->label_lname)?></td>
      <td><input type="text" name="last_name"></td>
    </tr>   
    <tr>
      <td><?php echo $this->escape($this->label_uname)?></td>
      <td><input type="text" name="user_name"></td>
    </tr>   
    <tr>
      <td><?php echo $this->escape($this->label_pass)?></td>
      <td><input type="password" name="password"></td>
    </tr>   
  </table>
  <input type="submit" name="submit" value="<?php echo $this->escape($this->label_submit);?>">
  </form>

在您提供的代码中,似乎根本没有使用$request。我不明白为什么评论它会破裂

当你把它评论出来时,到底发生了什么

getRequest()函数用于获取请求对象,该对象为您提供参数等(即控制器、操作等)

编辑:

我看了教程,它有以下内容:

12   
13    $sql = "INSERT INTO `user`
14            (`first_name` , `last_name` ,`user_name` ,`password`)
15            VALUES
16            ('".$request->getParam('first_name')."', '".$request->getParam('last_name')."', '".$request->getParam('user_name')."', MD5('".$request->getParam('password')."'))";
17    $DB->query($sql);
您会注意到,它使用$request变量来获取参数: “名字”、“姓氏”、“用户名”、“密码”


并将它们保存到数据库中。

注释出来后,我会收到“应用程序出错”消息。取消注释它就可以工作。@Valorin您刚才添加的SQL代码位于不同的方法和视图中,并且还包含它自己的getRequest和$request。aw-jeez-我犯了一个愚蠢的错误-我在测试注释/取消注释时没有清除字段,所以它试图将重复的内容放入数据库中,并得到一个错误。当我添加新内容时,我可以对这行内容进行注释,但这些内容仍然有效。很酷,少了一件让人困惑的事情!不久,您应该研究Zend_Db_Table_抽象类。它有处理SQL语句的方法,所以您不必自己动手。教程中的代码已经成熟,可以进行SQL注入攻击。@peter-我相信这是下一个教程,他开始寻找其他方法来为Db提供信息。很酷,你可能也会喜欢Zend_表单,它让用值填充表单变得很简单。我不喜欢对其他人的工作持否定态度,但该教程非常糟糕。我建议大家通读一下,特别注意使用表单的部分。@david谢谢你的评论。我不同意。本教程非常简单地解释了基础知识。本教程甚至不是关于表单的,而是关于将数据输入数据库的。这是本教程中我非常喜欢的内容之一,他提出了一个非常基本的概念,并向您展示了如何做到这一点,然后继续讨论下一个问题(例如,下一个教程将展示如何用Zend_Db_Table_Abstract替换Db连接)。我强烈地感觉到Zend Framework教程对于完全的新手(比如我自己)来说非常缺乏,并且试图做得太多太快。