# cookies in widget setzen

**URL:** <https://forum.shopware.com/t/cookies-in-widget-setzen/29180>\
**Category:** Programmierung\
**Created:** [27. Juli 2015 um 22:06 UTC](https://forum.shopware.com/t/cookies-in-widget-setzen/29180 "2015-07-27T22:06:24Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![Kerstin83](https://avatars.discourse-cdn.com/v4/letter/k/49beb7/32.png) [@Kerstin83](https://forum.shopware.com/u/Kerstin83)\
**Post date:** [27. Juli 2015 um 22:06 UTC](https://forum.shopware.com/t/cookies-in-widget-setzen/29180/1 "2015-07-27T22:06:24Z")

</div>

Liebes Forum 🙂 🙂 in Shopware kann man ja cookies so setzen: `$controller = $arguments-\>getSubject(); $controller-\>Response()-\>setCookie('Testcookie', $value); ` In einer indexAction eines widgets gibt es aber kein $argument. Wie geht man da vor? Oder setzt man ihn ganz normal per php setcookie() ? LG Kerstin

---

<div class="post-metadata">

**Author:** ![DanielNogel](https://avatars.discourse-cdn.com/v4/letter/d/96bed5/32.png) [@DanielNogel](https://forum.shopware.com/u/DanielNogel)\
**Post date:** [28. Juli 2015 um 07:28 UTC](https://forum.shopware.com/t/cookies-in-widget-setzen/29180/2 "2015-07-28T07:28:12Z")

</div>

Hi, die $arguments sind die \Enlight\_Event\_EventArgs, die du bekommst, wenn du dich mit einem Event auf einen Controller registrierst (bspw. Pre- oder PostDispatch). Wenn du einen eigenen Controller / ein eigenes Widget erzeugst, kannst du einfach mit $this-\>Response auf das Response-Objekt zugreifen ([https://developers.shopware.com/develop … is-request](https://developers.shopware.com/developers-guide/controller/#this-request)). Besten Gruß, Daniel

---

<div class="post-metadata">

**Author:** ![Kerstin83](https://avatars.discourse-cdn.com/v4/letter/k/49beb7/32.png) [@Kerstin83](https://forum.shopware.com/u/Kerstin83)\
**Post date:** [28. Juli 2015 um 08:19 UTC](https://forum.shopware.com/t/cookies-in-widget-setzen/29180/3 "2015-07-28T08:19:09Z")

</div>

ah, das hört sich gut an. Ich habe es analog zu dem “normalen” Aufruf versucht: `$this-\>Request()-\>setCookie('Testcookie', rand());` und noch ein paar andere Varianten, funktioniert aber nicht. Wie ist denn die genaue Syntax? LG Kerstin

---

<div class="post-metadata">

**Author:** ![Kerstin83](https://avatars.discourse-cdn.com/v4/letter/k/49beb7/32.png) [@Kerstin83](https://forum.shopware.com/u/Kerstin83)\
**Post date:** [29. Juli 2015 um 06:58 UTC](https://forum.shopware.com/t/cookies-in-widget-setzen/29180/4 "2015-07-29T06:58:06Z")

</div>

ich wollte noch einmal nach dem genauen Befehl für das Setzen von cookies fragen. ($this-\> … -\>setCookie().Ich mache es jetzt zwar mit dem php setcookie() aber wäre ja schöner, es richtig mit shopware zu machen. (Wobei ich gar nicht so genau weiß, was daran besser ist. Wenn ihr das vielleicht auch sagen könntet…) LG Kerstin 🙂

---

<div class="post-metadata">

**Author:** ![cube1893](https://avatars.discourse-cdn.com/v4/letter/c/9f8e36/32.png) [@cube1893](https://forum.shopware.com/u/cube1893)\
**Post date:** [29. Juli 2015 um 08:46 UTC](https://forum.shopware.com/t/cookies-in-widget-setzen/29180/5 "2015-07-29T08:46:16Z")

</div>

Hi, die Methode setCookie wird auf dem Response-Objekt ausgeführt, siehe: [Enlight\_Controller\_Request\_RequestHttp](http://community.shopware.com/%5C_doc-sw4/classes/Enlight%5C_Controller%5C_Request%5C_RequestHttp.html) [Enlight\_Controller\_Response\_ResponseHttp](http://community.shopware.com/%5C_doc-sw4/classes/Enlight%5C_Controller%5C_Response%5C_ResponseHttp.html) Das heißt für dich sollte `$this-\>Response-\>setCookie('key', 'value');` funktionieren bzw. bei Event-Registrierung `$args-\>getSubject()-\>Response()-\>setCookie('key', 'value');` Viele Grüße.

---

<div class="post-metadata">

**Author:** ![Kerstin83](https://avatars.discourse-cdn.com/v4/letter/k/49beb7/32.png) [@Kerstin83](https://forum.shopware.com/u/Kerstin83)\
**Post date:** [30. Juli 2015 um 08:32 UTC](https://forum.shopware.com/t/cookies-in-widget-setzen/29180/6 "2015-07-30T08:32:38Z")

</div>

Vielen Dank für die Antwort. Ich habe das getestet. Bei mir wird damit aber auch kein cookie gesetzt. Wahrscheinlich muss ich einen Pfad setzen, muss ich beim “normalen” setcookie auch. Wie macht man das mit shopware? Analog dem php Befehl setcookie funktioniert es glaube ich nicht $this-\>Response()-\>setCookie(‘Testcookie2’, ‘afaf’, time()+30, ‘/’); Oder? LG Kerstin

---

<div class="post-metadata">

**Author:** ![cube1893](https://avatars.discourse-cdn.com/v4/letter/c/9f8e36/32.png) [@cube1893](https://forum.shopware.com/u/cube1893)\
**Post date:** [30. Juli 2015 um 10:34 UTC](https://forum.shopware.com/t/cookies-in-widget-setzen/29180/7 "2015-07-30T10:34:50Z")

</div>

Bei mir funktioniert das Setzen des Cookies mit dieser Variante. Sicher, dass der Cookie nicht da ist? Zum Methoden-Aufruf: Schau doch bitte in die Doku, den Link hast du ja unten.

---

<div class="post-metadata">

**Author:** ![Kerstin83](https://avatars.discourse-cdn.com/v4/letter/k/49beb7/32.png) [@Kerstin83](https://forum.shopware.com/u/Kerstin83)\
**Post date:** [30. Juli 2015 um 10:49 UTC](https://forum.shopware.com/t/cookies-in-widget-setzen/29180/8 "2015-07-30T10:49:22Z")

</div>

Danke. [quote]Bei mir funktioniert das Setzen des Cookies mit dieser Variante. Sicher, dass der Cookie nicht da ist?[/quote] Schön für dich 🙂 Dann scheint die Syntax ja prinzipiell richtig zu sein. Aber geht nicht. Ich habe den Pfad so gesetzt, dass der cookie überall sichtbar ist (’/’). Aber ich kann ich nicht finden (Chrome-\>developer Tools unter resourcen. Dort sind die anderen cookies zu sehen). Ich setze parallel auch einen cookie mit php (setcookie) mit den gleichen Parametern (natürlich ein anderer key). Der funktioniert. LG Kerstin

---

<div class="post-metadata">

**Author:** ![cube1893](https://avatars.discourse-cdn.com/v4/letter/c/9f8e36/32.png) [@cube1893](https://forum.shopware.com/u/cube1893)\
**Post date:** [30. Juli 2015 um 12:42 UTC](https://forum.shopware.com/t/cookies-in-widget-setzen/29180/9 "2015-07-30T12:42:25Z")

</div>

Hm, dann ist komisch. Vielleicht hilfts zu verstehen, wenn du die gesamte Datei mal hier uns zeigst?

---

<div class="post-metadata">

**Author:** ![Kerstin83](https://avatars.discourse-cdn.com/v4/letter/k/49beb7/32.png) [@Kerstin83](https://forum.shopware.com/u/Kerstin83)\
**Post date:** [30. Juli 2015 um 13:48 UTC](https://forum.shopware.com/t/cookies-in-widget-setzen/29180/10 "2015-07-30T13:48:15Z")

</div>

Hallo, hier also der Code: `<?php class Shopware_Controllers_Widgets_EmotionAction extends Enlight_Controller_Action
{
    public function init()
    {
        Shopware()->Template()-\>addTemplateDir(Shopware()-\>Plugins()-\>Frontend()-\>EmotionAction()-\>Path().'Views'); } public function indexAction() { $Zufallscookiephp = $\_COOKIE['Zufallscookiephp']; setcookie('Zufallscookiephp', rand(),0 , '/'); $this-\>View()-\>assign('tt\_Zufallscookiephp', $Zufallscookiephp); $testcookiesw = $\_COOKIE['testcookiesw']; $this-\>Response()-\>setCookie('testcookiesw', 'afaf', 0, '/'); $this-\>View()-\>assign('tt\_testcookiesw', $testcookiesw); } } ` wie gesagt, setcookie() funktioniert in dem Skript. LG Kerstin

---

<div class="post-metadata">

**Author:** ![Kerstin83](https://avatars.discourse-cdn.com/v4/letter/k/49beb7/32.png) [@Kerstin83](https://forum.shopware.com/u/Kerstin83)\
**Post date:** [1. August 2015 um 22:23 UTC](https://forum.shopware.com/t/cookies-in-widget-setzen/29180/11 "2015-08-01T22:23:35Z")

</div>

hat jemand eine Idee, warum das bei mir nicht funktioniert? LG Kerstin

---

<div class="post-metadata">

**Author:** ![A\_Scheider](https://avatars.discourse-cdn.com/v4/letter/a/59ef9b/32.png) [@A\_Scheider](https://forum.shopware.com/u/A_Scheider)\
**Post date:** [12. April 2017 um 07:34 UTC](https://forum.shopware.com/t/cookies-in-widget-setzen/29180/12 "2017-04-12T07:34:22Z")

</div>

Hallo Kerstin,

ich habe das gleiche Fenomen, ich kann in einem Widget Controller kein Cookie durch setCookie setzen.

Mit der nativen PHP-Funktion klappt es wunderbar.

Es scheint ein Shopware Bug zu sein.
