Wo nutzt phpBB addslashes bei $message?

Probleme bei der regulären Arbeiten mit phpBB, Fragen zu Vorgehensweisen oder Funktionsweise sowie sonstige Fragen zu phpBB im Allgemeinen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
Benutzeravatar
mgutt
Mitglied
Beiträge: 2999
Registriert: 31.08.2004 16:44
Wohnort: Hennef
Kontaktdaten:

Wo nutzt phpBB addslashes bei $message?

Beitrag von mgutt »

Ich kann weder in der posting.php noch in der functions_post.php die Stelle finden, wo aus ' das \' wird.

Wenn html deaktiviert ist ersetzt ja ein str_replace das " gegen ein "

Aber wo wird addslashes bei der message eingesetzt?

Eigentlich dachte ich, ich wäre jeden Schritt nachgegangen:

posting.php zieht sich die message mit evtl. anführungszeichen:

Code: Alles auswählen

			$message = ( !empty($HTTP_POST_VARS['message']) ) ? $HTTP_POST_VARS['message'] : '';
dann gehts an prepare_post():

Code: Alles auswählen

			prepare_post($mode, $post_data, $bbcode_on, $html_on, $smilies_on, $error_msg, $username, $bbcode_uid, $subject, $message, $poll_title, $poll_options, $poll_length);
in prepare_post() wird einmal trim() gesetzt und dann direkt weiter an prepare_message(). In prepare_message() gibts komischerweise wieder ein trim(), aber das soll mich jetzt nicht stören. html ist aus, weshalb nun &, <, > und " ersetzt wird:

Code: Alles auswählen

$html_entities_match = array('#&(?!(\#[0-9]+;))#', '#<#', '#>#', '#"#');
$html_entities_replace = array('&', '<', '>', '"');
$message = preg_replace($html_entities_match, $html_entities_replace, $message);
Damit ist $message fertig bearbeitet worden und kann nun per submit_post() in die Datenbank:

Code: Alles auswählen

				submit_post($mode, $post_data, $return_message, $return_meta, $forum_id, $topic_id, $post_id, $poll_id, $topic_type, $bbcode_on, $html_on, $smilies_on, $attach_sig, $bbcode_uid, str_replace("\'", "''", $username), str_replace("\'", "''", $subject), str_replace("\'", "''", $message), str_replace("\'", "''", $poll_title), $poll_options, $poll_length);
Hier wurde nur \' gegen '' getauscht. ' müsste hier also noch bestehen, aber ist es nicht. Denn am Ende von submit_post(), nachdem der Text bereits erfolgreich in der Datebank gelandet ist, scheinen die slashes ja zu stören:

Code: Alles auswählen

add_search_words('single', $post_id, stripslashes($post_message), stripslashes($post_subject));
Ich finds einfach nicht :x


EDIT:
Ok, gefunden.. muss man erstmal darauf kommen. War in common.php:

Code: Alles auswählen

	if( is_array($HTTP_POST_VARS) )
	{
		while( list($k, $v) = each($HTTP_POST_VARS) )
		{
			if( is_array($HTTP_POST_VARS[$k]) )
			{
				while( list($k2, $v2) = each($HTTP_POST_VARS[$k]) )
				{
					$HTTP_POST_VARS[$k][$k2] = addslashes($v2);
				}
				@reset($HTTP_POST_VARS[$k]);
			}
			else
			{
				$HTTP_POST_VARS[$k] = addslashes($v);
			}
		}
		@reset($HTTP_POST_VARS);
	}
meine Foren: http://www.maxrev.de/communities.htm
Ich kaufe Dein Forum! Angebote bitte an marc at gutt punkt it
Antworten

Zurück zu „phpBB 2.0: Administration, Benutzung und Betrieb“