解析在zend Farmework下如何创立一个FORM表单

   2015-11-07 0
核心提示:本篇文章是对在zend Farmework下如何创立一个FORM表单的方法进行了详细的分析介绍,需要的朋友参考下
1.首先让我们设置一下我们的程序,让Zend能够自动载入方法,不需要我们手动的去载入
复制代码 代码如下:

require_once 'Zend/Loader/Autoloader.php'    //载入自动加载类
$loader = Zend_Loader_Autoloader::getInstance();//自动实例化
$loader->registerNamespace('Application_');//注册命名空间(只有系统默认的,和注册的才可以被自动载入)
$loader->registerNamespace(array('Foo_', 'Bar_')); //多个命名空间的注册方法
$loader->setFallbackAutoloader(true);  //一个增加消耗的方法,不需要命名空间,直接载入所有类(不被推荐使用)

然后请注意,你的包含目录是否已经包含了,你自己的需被载入的目录
复制代码 代码如下:

set_include_path(implode(PATH_SEPARATOR, array(
    realpath(APPLICATION_PATH . '/../library'),
    realpath(APPLICATION_PATH . '/forms/'),
    get_include_path(),
)));
//这里我们包含了我们的forms目录,方便程序的被载入

2.确认下form的目录
在application/forms/下 建立一个  Guestbook.phps
作为我们form的类文件,如下:
复制代码 代码如下:

<?php
 class Application_Form_Guestbook extends Zend_Form
{
    public function init()
    {
        // Set the method for the display form to POST
        $this->setMethod('post');//设置提交方式

        // Add an email element
        $this->addElement('text', 'email', array(//原件的类型,名词,和一些其他信息的定义
            'label'      => 'Your email address:',
            'required'   => true,
            'filters'    => array('StringTrim'),
            'validators' => array(
                'EmailAddress',
            )
        ));

        // Add the comment element
        $this->addElement('textarea', 'comment', array(
            'label'      => 'Please Comment:',
            'required'   => true,
            'validators' => array(
                array('validator' => 'StringLength', 'options' => array(0, 20))
                )
        ));

        // Add a captcha
        $this->addElement('captcha', 'captcha', array(
            'label'      => 'Please enter the 5 letters displayed below:',
            'required'   => true,
            'captcha'    => array(
                'captcha' => 'Figlet',
                'wordLen' => 5,
                'timeout' => 300
            )
        ));

        // Add the submit button
        $this->addElement('submit', 'submit', array(
            'ignore'   => true,
            'label'    => 'Sign Guestbook',
        ));

        // And finally add some CSRF protection
        $this->addElement('hash', 'csrf', array(
            'ignore' => true,
        ));
    }
}

然后添加一个路由控制文件
applictaion/controller/GuestbookController.php
复制代码 代码如下:

<?php
class GuestbookController extends Zend_Controller_Action
{
    // snipping indexAction()...
    public function signAction()
    {
        $request = $this->getRequest();//获取接受到得信息
       // include_once("../application/forms/Guestbook.php");  手动加载类,只有不能自动载入时,才需要
        $form    = new Application_Form_Guestbook;//实例化这个方法

        if ($this->getRequest()->isPost()) {//如果是POST传递的结果
            if ($form->isValid($request->getPost())) {//判断传递是否有效
                $comment = new Application_Model_Guestbook($form->getValues());
                $mapper  = new Application_Model_GuestbookMapper();
                $mapper->save($comment);
                return $this->_helper->redirector('index');
            }
        }

        $this->view->form = $form;//将表单赋值给试图
    }
}

最后添加一个简单的sign视图文件即可:
地址:application/views/scripts/guestbook/sgin.php
复制代码 代码如下:

Please use the form below to sign our guestbook!
<?php
$this->form->setAction($this->url());
echo $this->form;

 
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • PHP build notes - WARNING: This bison versio
     WARNING: This bison version is not supported for regeneration of the Zend/PHP parsers (found: 3.0, min: 204, excluded: 3.0). bison:PHP 5.4: 1.28, 1.35, 1.75, 1.875, 2.0, 2.1, 2.2, 2.3, 2.4, 2.4.1, 2.4.2, 2.4.3, 2.5, 2.5.1, 2.6, 2.6.1, 2.
    02-09
  • 12月31日 - 每日安全知识热点
    12月31日 - 每日安全知识热点
    热点概要: CVE-2016-7255:分析挖掘Windows内核提权漏洞 、 利用快捷方式作为恶意软件的入口点 、 JSM Bypass via createClassLoader 、 Zend Framework (zend-mail)2.4.11 Remote Code Execution 、 FireFox的vuln和exploit 国内热词(以下内容部分摘自http:
  • 【国际资讯】SwiftMailer、PhpMailer和ZendMail被爆RCE漏洞
    【国际资讯】SwiftMailer、PhpMailer和ZendMail
    翻译:WisFree预估稿费:140RMB(不服你也来投稿啊!) 投稿方式:发送邮件至 linwei#360.cn ,或登陆网页版在线投稿 概述 近日,一位安全研究专家公开了一个存在于开源PHP代码库(用于发送电子邮件的热门PHP代码库)中的严重漏洞,这个远程代码执行漏洞或将
  • PhpMailer、SwiftMailer、ZendMail接连曝RCE高危漏洞,影响数百万web服务器
    PhpMailer、SwiftMailer、ZendMail接连曝RCE高
    研究人员最近发现了一个存在于3个常见开源PHP库中的高危(Critical)漏洞,黑客可以利用这个漏洞远程执行任意命令,存在漏洞的PHP库包括SwiftMailer、PhpMailer和ZendMail。 前几天FreeBuf报道过,来自波兰Legal Hackers的研究员Dawid Golunski前一阵就披露了存
  • Zend Studio使用教程:在Docker容器中调试PHP Web应用(四)
    Zend Studio使用教程:在Docker容器中调试PHP W
    本教程为大家介绍的是一个全面的演示,从Docker Hub中提取合适的镜像、运行一个容器到调试PHP代码。该演示需要使用Zend Studio 13,因为它引入了全新的Docker Tooling。注意:所描述的场景仍然可以使用Zend Studio早期的版本,但任何Docker管理操作需要在命令
  • Zend Studio使用教程:在Docker容器中调试PHP Web应用(三)
    Zend Studio使用教程:在Docker容器中调试PHP W
    本教程为大家介绍的是一个全面的演示,从Docker Hub中提取合适的镜像、运行一个容器到调试PHP代码。该演示需要使用Zend Studio 13,因为它引入了全新的Docker Tooling。注意:所描述的场景仍然可以使用Zend Studio早期的版本,但任何Docker管理操作需要在命令
  • 从PHP语法糖剖析Zend VM引擎
    1.先说个PHP5.3+ 的语法糖,通常我们这样写:?php$a = 0;$b = $a ? $a : 1;语法糖可以这样写:?php$a = 0;$b = $a ?: 1;执行结果$b = 1,后面写法更简洁,但通常不太建议用太多语法糖,特别是容易理解混淆的,比如PHP 7 新增加??如下:?php$b = $a ?? 1;相当
    11-07 PHP
  • Zend Studio使用教程:在Docker容器中调试PHP Web应用(二)
    Zend Studio使用教程:在Docker容器中调试PHP W
    本教程为大家介绍的是一个全面的演示,从Docker Hub中提取合适的镜像、运行一个容器到调试PHP代码。该演示需要使用Zend Studio 13,因为它引入了全新的Docker Tooling。注意:所描述的场景仍然可以使用Zend Studio早期的版本,但任何Docker管理操作需要在命令
  • Zend Studio使用教程:在Docker容器中调试PHP Web应用(一)
    Zend Studio使用教程:在Docker容器中调试PHP W
    在任何编程语言中调试都是软件开发的基本任务。但不幸的是,在PHP中使用开箱即用的经验进行调试并不是一直奏效的。php.net上的“stock” PHP二进制文件没有配置两个流行的服务器Xdebug和Zend Debugger。开发人员需要进行额外的配置,使他们的PHP堆栈可以进行
  • zend php 动态数组
    对C语言有过了解的同学,都知道C语内置了数组类型,可是C数组是静态的—数组的长度在编译时期便已确定了长度(分配了内存)。甚至你都不能这么着使用const int arr_size = 100;char foo[arr_size];使用数组即有较高的随机访问特性,但我们在很多实际运用场景都
    10-17 PHP
点击排行