cookie inhalt erweitern

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
Nobody-66
Mitglied
Beiträge: 45
Registriert: 21.10.2009 17:52

cookie inhalt erweitern

Beitrag von Nobody-66 »

ich habe nun ne ewigkeit gesucht, aber nix gefunden ( oder einfach nur falsch gesucht ).
ich möchte gerne bei meinem board ( 3.0.7 [ich weiss, es ist nicht die aktuellste, aber update kommt erst, bevor ich es online stelle :) ] in einem cookie einen neuen ( also weiteren ) wert speichern. er sollte dann auch eine weile bestehen bleiben ( also nicht nach logout automatisch gelöscht werden ).
wo und was muss ich einfügen, das ich das endlich hinbekomme?
bei php gibt es ja setcookie, aber in phpbb nicht.

würde mich sehr freuen, wenn mir jemand behilflich sein kann.
Benutzeravatar
DeepSurfer
Mitglied
Beiträge: 1337
Registriert: 23.01.2009 10:26

Re: cookie inhalt erweitern

Beitrag von DeepSurfer »

hhmm...eben beim überfliegen mein ich die set's gefunden zu haben.
/includes/auth.php bei den Zeilen um 945

Weiss aber auch nicht ob es genauer bei den Entwickler Wikis etwas zu finden ist.
https://www.phpbb.de/infos/entwickler.php
wie einst der MCP aus Tron auf dem Bildschirm zu schreiben pflegte.
- end of communication -
greets
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Re: cookie inhalt erweitern

Beitrag von Pyramide »

Nobody-66 hat geschrieben:bei php gibt es ja setcookie, aber in phpbb nicht.
Da phpBB in PHP geschrieben ist, steht die setcookie-Funktion dort selbstverständlich auch zur Verfügung. KB:php_phpbb
KB:knigge
Nobody-66
Mitglied
Beiträge: 45
Registriert: 21.10.2009 17:52

Re: cookie inhalt erweitern

Beitrag von Nobody-66 »

danke euch erstmal für die vorschläge, habe das cookie nun wie gewünscht hinbekommen.
nun ist nur noch eine feinheit, die ich nicht hinbekomme:
im cookie wird ein wert gespeichert, der bei einem erneuten seitenaufruf anders sein kann. nun aktualisiert es aber leider das cookie nicht. da ich den wert bei einem späteren besuch des users gern haben möchte, kann ich es nicht einfach an die URL dran hängen, sondern muss halt im cookie aktualisiert werden. der einzige cookie von PHPBB, der neu geschrieben wird, ist der style-cookie. wollte aber nix in der styleswitcher.js ändern, da ich von javascript noch weniger ahnung wie von php habe.

wäre super, wenn ihr mir bei dem problem auch noch helfen könntet
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Re: cookie inhalt erweitern

Beitrag von Pyramide »

Wie sieht denn dein jetziger Code aus?
KB:knigge
Nobody-66
Mitglied
Beiträge: 45
Registriert: 21.10.2009 17:52

Re: cookie inhalt erweitern

Beitrag von Nobody-66 »

Pyramide hat geschrieben:Wie sieht denn dein jetziger Code aus?
in der session.php habe ich nach

Code: Alles auswählen

			$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);
einfach noch

Code: Alles auswählen

			$this->set_cookie('test', $test_inhalt, $cookie_expire);
eingefügt. dadurch wird beim 1. aufruf des boardes das cookie mit gesetzt.

nun müsste ich nur noch wissen, wo ich den cookie-prüfcode

Code: Alles auswählen

				$test_inhalt = request_var('wert', '');
				$rtest = $_COOKIE[$config['cookie_name'] . '_test']; 	

			# test, ob das cookie vom benutzer verändert wurde

				if (eregi("([<>{}\/%?=$'#*+&;a-zA-Zäöü])", $rtest)) 
				{ die("Wert keine Zahl"); }

					if ($test_inhalt != $rtest)
					{				
						# cookie neu schreiben
						$this->set_cookie('test', $test_inhalt, $cookie_expire);
					}


einfügen muss, damit bei jedem seitenaufruf geprüft wird, ob das cookie den übermittelten wert hat oder aktualisiert werden muss.
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Re: cookie inhalt erweitern

Beitrag von Pyramide »

Wenn der Code bei jedem Seitenaufruf ausgeführt werden soll, könntest du ihn z.B. in der common.php einfügen.
KB:knigge
Nobody-66
Mitglied
Beiträge: 45
Registriert: 21.10.2009 17:52

Re: cookie inhalt erweitern

Beitrag von Nobody-66 »

mal noch eine frage:

Code: Alles auswählen

            if (eregi("([<>{}\/%?=$'#*+&;a-zA-Zäöü])", $rtest))
            { die("Wert keine Zahl"); }
ist ja nun nicht die schöneste version, um auf zahlen zu prüfen.
nun habe ich mal ne weile gesucht und habe is_int gefunden.
das problem ist aber, das es im phpbb nicht so richtig geht.

$abc = 1; ist eine gültige zahl
$abc = '1'; ist eine ungültige zahl
$abc = $_COOKIE[$config['cookie_name'] . '_test']; ist eine ungültige zahl ( wert ist im cookie als zahl gesetzt )

wie behebe ich das problem?
oder hat jemand noch eine andere art, um auf ganze zahlen zu prüfen?

zusätzliche frage:
wenn man
$test_inhalt = request_var('wert', 0);
verwendet, kann man den test, ob es nur eine zahl ist, gleich weglassen? habe ich das richtig erkannt?
Benutzeravatar
Mahony
Ehemaliges Teammitglied
Beiträge: 12179
Registriert: 17.11.2005 22:33
Wohnort: Ostfildern Kemnat
Kontaktdaten:

Re: cookie inhalt erweitern

Beitrag von Mahony »

Hallo
Schau mal hier Wie man request_var (nicht) benutzen sollte

Grüße: Mahony
Taekwondo in Berlin
Wer fragt, ist ein Narr für fünf Minuten, wer nicht fragt, ist ein Narr für immer.
Antworten

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