Seite 1 von 1

cookie inhalt erweitern

Verfasst: 02.04.2011 11:01
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.

Re: cookie inhalt erweitern

Verfasst: 02.04.2011 13:09
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

Re: cookie inhalt erweitern

Verfasst: 02.04.2011 16:09
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

Re: cookie inhalt erweitern

Verfasst: 02.04.2011 18:24
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

Re: cookie inhalt erweitern

Verfasst: 02.04.2011 19:00
von Pyramide
Wie sieht denn dein jetziger Code aus?

Re: cookie inhalt erweitern

Verfasst: 02.04.2011 19:21
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.

Re: cookie inhalt erweitern

Verfasst: 02.04.2011 21:44
von Pyramide
Wenn der Code bei jedem Seitenaufruf ausgeführt werden soll, könntest du ihn z.B. in der common.php einfügen.

Re: cookie inhalt erweitern

Verfasst: 03.04.2011 13:12
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?

Re: cookie inhalt erweitern

Verfasst: 03.04.2011 23:05
von Mahony
Hallo
Schau mal hier Wie man request_var (nicht) benutzen sollte

Grüße: Mahony