Wie setze und rufe ich Cookies ab?

12

Nach einigen Tagen und mehr Stunden habe ich nur Probleme und Patches gefunden, was zu tun ist, wenn ein Cookie gesetzt ist, aber keiner erwähnt, wie man überhaupt ein Cookie gesetzt bekommt.

Unsere Absicht wäre es, ein (Sitzungs-) Cookie der Zielseite (für ALLE Benutzerrollen) zu setzen und dieses Cookie auf bestimmten Seiten über Ansichten abzurufen, um es in der URL eines ausgehenden Links zu verwenden. Dies wäre in der Standardprogrammierung sehr einfach (selbst ich verstehe), aber ich fange an, erhebliche Zweifel zu haben, ob dies in Drupal tatsächlich möglich ist.

Riccardorb
quelle

Antworten:

4

Drupal setzt bereits ein Sitzungscookie, wenn sich ein Benutzer anmeldet: siehe die Funktion drupal_session_regenerate () .

Können Sie diese Sitzungs-ID für Ihre Zwecke verwenden? Wenn nicht, müssen Sie nur einen neuen Wert im Cookie erstellen, wie Sie es in PHP tun werden $_COOKIE['my_value'];. Platzieren Sie diesen Code in hook_init()einem benutzerdefinierten Modul und fügen Sie ein hinzu if(), um die Zielseite zu filtern.

Später rufen Sie es ab und verwenden es in Ihrer Ansicht. Sie können je nach Bedarf einige der Hooks von Views verwenden . Sie können auch das benutzerdefinierte Feld "Ansichten des Moduls" verwenden und dort Ihren PHP-Code einbetten.

corbacho
quelle
1
Wenn er nur einen Sitzungswert benötigt, kann er diesen auch verwenden $_SESSION[], da eine Sitzung immer von Drupal aus initialisiert wird.
Kiamlaluno
2

Sie können ein Cookie setzen mit: setcookie('cookiename',$valueOfCookie);

Sie können den Cookie-Wert abrufen mit: $_COOKIE['cookiename']

Ibrahim
quelle