---
title: "MailFormPlus: cookiedaten verwenden"
url: "https://www.typo3.net/d/79448-mailformplus-cookiedaten-verwenden"
source: "typo3.net"
tags: ["Extensions","PHP","Tipp"]
created: "2008-07-12"
last_reply: "2008-07-12"
replies: 1
solved: false
page: 1
pages: 1
lang: "de"
---

# MailFormPlus: cookiedaten verwenden

Extensions · 1 Antwort · gestartet 2008-07-12

## Eröffnungsbeitrag

**sunfish** · 2008-07-12 · [Beitrag #1](https://www.typo3.net/d/79448-mailformplus-cookiedaten-verwenden/1)

Hallo,
ich beschreibe hier, wie man z.B. Adress-Daten in einem cookie speichern und als defaultValues später wieder verwenden kann.

Datei mit den Funktionen zum Setzen und zum Auslesen des cookies anlegen.
*typo3conf/ext/myExt/class.tx_myExt.php*

```php
<?php

require_once(PATH_tslib."class.tslib_pibase.php");

class tx_myExt extends tslib_pibase {   
	// save address data in a cookie array, that expires in 500 days
	function tx_set_address_cookie(&$params, &$ref)
	{		
		
		// $params['data'] = $this->get_post;
		$data = $params['data'];
		if( isset($data['saveaddress']) )
		{
			$cookiekeys = $params['config']['cookiekeys'];
			$cookiekeysArray = explode(",",$cookiekeys);
			
			foreach( $cookiekeysArray as $key )
			{
				if( isset($data[$key]) )
				{
					setcookie("address[$key]", $data[$key], time()+(3600*24*500),'/');
				}
				else
				{
					// delete cookie
					setcookie("address[$key]", '', time()-86400);
				}
			}
		} // if isset
		
	} // function tx_set_address_cookie
	
	
	function tx_get_address_cookie(&$params, &$ref)
	{						
		/*
		 * preprocUserFunc is started on the very first
		 * but later on, there remains only $ref->conf['predef.'][$predef] Array
		 * so the actual plugin $predef has to be known.
		 */
		$t = $ref->pi_initPIflexForm();
		$predef = $ref->pi_getFFvalue($ref->cObj->data['pi_flexform'], 'predefined', 'sDEFAULT');
		
		$cookieArray = $_COOKIE["address"];

		foreach( $cookieArray as $key => $value )
		{
			$ref->conf['predef.'][$predef]['fieldConf.'][$key.'.']['defaultValue.']['value']  = $value;
		}
		
	} // function tx_get_address_cookie
	
}
?>
```

Aufruf der Funktion um das Cookie zu setzen - per Typoscript-Setup. Im Beispiel werden nur Vorname und Nachname gespeichert und das auch nur, wenn die Checkbox mit dem Namen 'saveaddress' angeklickt war.

```typoscript
plugin.tx_thmailformplus_pi1.predef.myFormName {
  saveUserFunc = typo3conf/ext/myExt/class.tx_myExt.php:tx_myExt->tx_set_address_cookie
  saveUserFunc.cookiekeys = vorname,nachname
}
```

Aufruf um die Cookiedaten auszulesen und als defaultValues einzusetzen. preprocUserFunc wird ganz am Anfang von *class tx_thmailformplus_pi1* gestartet. Die Funktion kann daher nicht mit einem predef-Eintrag aufgerufen werden.

```typoscript
plugin.tx_thmailformplus_pi1.preprocUserFunc = typo3conf/ext/myExt/class.tx_myExt.php:tx_myExt->tx_get_address_cookie
```

Werden die Pfade zur "Ergänzungs-Extension" relativ geschrieben werden, muss sie nicht als Extension nicht geladen sein. Die Klasse kann dann einfach so aufgerufen werden.

## Antworten

### [#2](https://www.typo3.net/d/79448-mailformplus-cookiedaten-verwenden/2) · einpraegsam.​net · 2008-07-12

Klasse Sache - danke für das Howto

Grüße, Alex

---

Quelle: „MailFormPlus: cookiedaten verwenden“, typo3.net, https://www.typo3.net/d/79448-mailformplus-cookiedaten-verwenden
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
