Php 需要了解getRequest()Zend框架的帮助吗
我正在做这个教程: 我们正在使用POST构建一个简单的输入表单,并将其提交到mySQL数据库。一切正常。我只是想了解一下getRequest()函数 在控制器中,我们有: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
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教程对于完全的新手(比如我自己)来说非常缺乏,并且试图做得太多太快。