---
title: "Blogga med Zend Framework - Del 7: Zend_Form och Zend_Validate"
type: "forum-thread"
url: "https://www.webforum.nu/amne/webbutveckling/175981-blogga-med-zend-framework-del-7-zend-form-och-zend-validate"
topic: "Webbutveckling"
topic_url: "https://www.webforum.nu/amne/webbutveckling"
author: "jme"
published: "2008-12-21T21:32:51.000Z"
updated: "2008-12-21T21:32:51.000Z"
replies: 0
views: 3432
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/webbutveckling/175981-blogga-med-zend-framework-del-7-zend-form-och-zend-validate"
---

# Blogga med Zend Framework - Del 7: Zend_Form och Zend_Validate

## #1 — jme, 2008-12-21T21:32Z

Zend_Form har två huvudsakliga funktioner: generering av färdiga formulär samt validering av formulärdata. Följande exempel tagen ur bloggen skapar ett inloggningsformulär:

```php
class Form_LoginForm extends Zend_Form
{
...
	$this->setAction('/login');
	$this->setMethod('post');

	$username = $this->createElement('text', 'username');
	$username->setLabel('Username');

	$password = $this->createElement('password', 'password');
	$password->setLabel('Password');

	$submit = $this->createElement('submit', 'submit');
	$submit->setLabel('Login');

	$this->addElement($username);
	$this->addElement($password);
	$this->addElement($submit);
...
}
```

Ovanstående formulär kan sedan visas genom:

```php
// genererar ett inloggningsformulär med textfält för användarnamn och lösenord samt en submit-knapp
echo $this->form->render();
```

Den andra viktiga funktionen är validering av formulärdata. Du kan lätt lägga till valideringsregler som bestämmer att användarnamnet måste vara 6-20 bokstäver långt och måste innehålla minst en siffra (varför just en siffra låter vi läsaren avgöra).

Valideringen görs t.ex. på följande sätt:

```php
if($form->isValid($_POST) )
{
	echo "Form is valid";
}
else
{
	echo "Nay!";
}
```

 
**Zend_Validate**

Zend_Validate hjälper dig med validering av formulärdata. Dessa nämndes redan ovan. 

Låt oss återigen ta ett exmpel från bloggen (se klassen Form_CreateForm (blog/controllers/models/Form) ):

```php
// skapar ett textfält för rubriken
$topic = $this->createElement('text', 'topic');
$topic->setLabel('Topic');

// rubrikens längd: 3 eller fler tecken
$topicLengthValidator = new Zend_Validate_StringLength(3); 
// alternativt felmeddelande
$topicLengthValidator->setMessage('The topic is too short', Zend_Validate_StringLength::TOO_SHORT);
```

```php
// Vi kan ha flera validatorer till samma fält

$topicValidator = new Zend_Validate();

$topicValidator->addValidator($topicLengthValidator, false);
$topicValidator->addValidator($topicContentValidator, false);

$topic->addValidator($topicValidator);
```

Själva valideringen:

```php
...
if($form->isValid($data) ) // $data är $_GET eller $_POST
{
	...
}
```

Valideringsklasserna kan också användas utan Zend_Form. Detta får dock bli en extrauppgift för läsaren.

Permalänk: https://www.webforum.nu/p/175981

---

Tråden på webben: https://www.webforum.nu/amne/webbutveckling/175981-blogga-med-zend-framework-del-7-zend-form-och-zend-validate
