我开始学习Zend,所以这是我联系我们页面的链接 -
我的Zend版本 - Zend Framework v1.11.11
http://www.tutorial-portal.com/tutorial/show/id/27
我使用命令行创建了表单 - zf create form Contact
成功创建了forms
文件所在的文件夹Contact.php
。 Contact.php
中的代码如下 -
<?php
class Application_Form_Contact extends Zend_Form
{
public function init()
{
/* Form Elements & Other Definitions Here ... */
$this->setmethod('post');
$this->setName('contact-form');
$this->addElement('text', 'name', array(
'label' => 'Please enter your name',
'required' => true,
));
$this->addElement('text', 'email', array(
'label' => 'Please enter email address',
'required' => true,
'validators' => array('EmailAddress'),
));
$this->addElement('textarea', 'message', array(
'label' => 'Please enter your message',
'required' => true,
'validators' => array( array('validator' => 'StringLength', 'options' => array(0, 20) )
));
$this->addElement('captcha', 'captcha', array(
'label' => 'Please enter the 5 letters displayed below:',
'required' => true,
'captcha' => array('captcha' => 'Figlet','wordLen' => 5,'timeout' => 300 )
));
$this->addElement('submit', 'submit', array(
'ignore' => true,
'label' => 'Send Message',
));
$this->addElement('hash', 'csrf', array(
'ignore' => true,
));
}
}
现在我在ContactController.php
下创建了一个控制器C:\xampp\htdocs\projectone\application\controllers
。此控制器中的代码如下所示 -
<?php
class ContactController extends Zend_Controller_Action
{
public function init()
{
/* Initialize action controller here */
//$form = new Application_Form_Contact();
//$this->view->form = $form;
}
public function indexAction()
{
// action body
// Create form instance
$form = new Application_Form_Contact();
/**
* Get request
*/
$request = $this->getRequest();
$post = $request->getPost(); // This contains the POST params
/**
* Check if form was sent
*/
if ($request->isPost()) {
/**
* Check if form is valid
*/
if ($form->isValid($post)) {
// build message
$message = 'From: ' . $post['name'] . chr(10) . 'Email: ' . $post['email'] . chr(10) . 'Message: ' . $post['message'];
// send mail
mail('contact@yourwebsite.com', 'contact: ' . $post['subject'], $message);
}
}
// give form to view (needed in index.phtml file)
$this->view->form = $form;
}
}
文件夹结构index.phtml
下的C:\xampp\htdocs\projectone\application\views\scripts\contact
中的代码如下所示 - 回显php标记中的代码 - echo $this->form
但这根本不起作用:(真的无法找到我做错的事。
它只显示一个空白页面,甚至没有简单的html内容。
这是使用的URL,虽然其他控制器工作正常 -
http://localhost/projectone/public/contact
PS - 由于我是Zend的首发,我不知道在哪里&amp;如何查找Zend错误,让我也知道这一点:)
答案 0 :(得分:0)
执行各种启发式操作,并检查各个级别的代码后,我能够调试我的代码。问题实际上是在这个LOC -
BUG -
$this->addElement('textarea', 'message', array(
'label' => 'Please enter your message',
'required' => true,
'validators' => array( array('validator' => 'StringLength', 'options' => array(0, 20) )
));
删除强>
'validators' => array( array('validator' => 'StringLength', 'options' => array(0, 20) )
一切都很像魅力。