Cookies setzen und löschen

In diesem Forum kann man Fragen zur Programmierung stellen, die bei der Entwicklung von Mods für phpBB 3.0.x oder dem Modifizieren des eigenen Forums auftauchen.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
schumiel
Mitglied
Beiträge: 131
Registriert: 27.10.2009 12:58

Cookies setzen und löschen

Beitrag von schumiel »

Hallo,

ich möchte gern mit Einloggen/Ausloggen Cookies setzen/entfernen. Jedoch nicht die üblichen Forum-Cookies, sondern andere, die auf weitere Seiten der Domain wichtig sind.

Ich suchte dafür die Funktionen und setzte das hier einfach ein, das aber kein Setzen/Löschen durchführte.
setcookie("test","test", time()+(3600), "/", "domain.de", 0, true);
Ich bin für jeden Tipp dankbar. :)
schumiel
Mitglied
Beiträge: 131
Registriert: 27.10.2009 12:58

Re: Cookies setzen und löschen

Beitrag von schumiel »

Weis keiner Rat? :(
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17412
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Re: Cookies setzen und löschen

Beitrag von Dr.Death »

Hi,

nimmt Dein Browser überhaupt Cookies an ?
Wann werden Cookies gesendet ? ( Vor HTML ? )
http://php.net/manual/de/function.setcookie.php
setcookie() definiert ein mit den HTTP Header-Informationen zu übertragendes Cookie. Wie andere Header auch, müssen Cookies vor jeglicher Ausgabe Ihres Skriptes gesendet werden (dies ist eine Einschränkung des Protokolls). Das bedeutet, dass Sie diese Funktion aufrufen müssen, bevor Sie eine Ausgabe, dazu zählen auch <html>- oder <head>-Tags sowie jede Art von Whitespaces, übermitteln.
schumiel
Mitglied
Beiträge: 131
Registriert: 27.10.2009 12:58

Re: Cookies setzen und löschen

Beitrag von schumiel »

Hm, ich merke, meine Frage/Anliegen war etwas schwammig formuliert - sorry.

Wie Cookies gesetzt werden, weiß ich - zeigt ja das Beispiel - und angenommen werden sie auch. Mir ging es darum, wenn man im Forum auf Ausloggen klickt, wird ja die Auslogg-Funktion technisch herangezogen. Dort möchte ich gern eigene nicht phpbb3-Forum-Cookies löschen lassen. Ich weiß nicht, ob ich dazu die falsche Funktion gewählt habe. Und das gleiche ist beim Einloggen. Logge ich mich über das Loginformular ein, möcht ich gern eigene Cookies, siehe Test-Cookie erstellen lassen. Nur eben wo muss ich das jeweils einfügen?
schumiel
Mitglied
Beiträge: 131
Registriert: 27.10.2009 12:58

Re: Cookies setzen und löschen

Beitrag von schumiel »

Das Problem besteht immer noch. :(
schumiel
Mitglied
Beiträge: 131
Registriert: 27.10.2009 12:58

Re: Cookies setzen und löschen

Beitrag von schumiel »

Habe ich mein Problem nicht verständlich beschreiben können?
Ich habe nachwievor noch keine Lösung gefunden. :(
Benutzeravatar
StarWolf3000
Mitglied
Beiträge: 1019
Registriert: 25.07.2005 10:20
Wohnort: Stolpen
Kontaktdaten:

Re: Cookies setzen und löschen

Beitrag von StarWolf3000 »

Um Cookies zu erstellen/aktualisieren, setze das Datum in die Zukunft:

Code: Alles auswählen

setcookie("test", "test", time()+3600, "/", "domain.de", 0, true);
bzw. wenn httponly nicht unterstützt wird/werden soll, dann den letzten Parameter weglassen
Um Cookies zu löschen, setze das Datum in die Vergangenheit, bspw. aktuelle Zeit - 1 Stunde:

Code: Alles auswählen

setcookie("test", "", time() - 3600, "/", "domain.de", 0, true);
MOD-Einbauhilfe und Installationen über ICQ, TeamSpeak 2/3 und TeamViewer. Support nur im Forum, eingeschränkt per TeamViewer, aber nicht mehr per PN! • KB:knigge
schumiel
Mitglied
Beiträge: 131
Registriert: 27.10.2009 12:58

Re: Cookies setzen und löschen

Beitrag von schumiel »

Das weiß ich alles und nutze ich bereits selbst, siehe oben.

-> Es geht mir aber darum, wo ich das beim Login und beim Logout in welche Funktion reinpacken muss.
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17412
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Re: Cookies setzen und löschen

Beitrag von Dr.Death »

Moin,

die phpBB3 Funktion zum ein/ausloggen und dem setzen/entfernen der Cookies befindet sich in der Datei: ucp.php

Suche dort nach:

Code: Alles auswählen

    case 'login':
        if ($user->data['is_registered'])
        {
            redirect(append_sid("{$phpbb_root_path}index.$phpEx"));
        }

        login_box(request_var('redirect', "index.$phpEx"));
    break;

    case 'logout':
        if ($user->data['user_id'] != ANONYMOUS && isset($_GET['sid']) && !is_array($_GET['sid']) && $_GET['sid'] === $user->session_id)
        {
            $user->session_kill();
            $user->session_begin();
            $message = $user->lang['LOGOUT_REDIRECT'];
        }
        else
        {
            $message = ($user->data['user_id'] == ANONYMOUS) ? $user->lang['LOGOUT_REDIRECT'] : $user->lang['LOGOUT_FAILED'];
        }
        meta_refresh(3, append_sid("{$phpbb_root_path}index.$phpEx"));

        $message = $message . '<br /><br />' . sprintf($user->lang['RETURN_INDEX'], '<a href="' . append_sid("{$phpbb_root_path}index.$phpEx") . '">', '</a> ');
        trigger_error($message);

    break; 
Die Cookies selbst werden in der Datei includes/session.php gesetzt und entfernt.

Suche dort nach:

Code: Alles auswählen

        if (!$bot)
        {
            $cookie_expire = $this->time_now + (($config['max_autologin_time']) ? 86400 * (int) $config['max_autologin_time'] : 31536000);

            $this->set_cookie('u', $this->cookie_data['u'], $cookie_expire);
            $this->set_cookie('k', $this->cookie_data['k'], $cookie_expire);
            $this->set_cookie('sid', $this->session_id, $cookie_expire);

            unset($cookie_expire); 
...und weiter...

Code: Alles auswählen

	/**
	* Kills a session
	*
	* This method does what it says on the tin. It will delete a pre-existing session.
	* It resets cookie information (destroying any autologin key within that cookie data)
	* and update the users information from the relevant session data. It will then
	* grab guest user information.
	*/
	function session_kill($new_session = true)
Antworten

Zurück zu „[3.0.x] Mod Bastelstube“