Quotes - Funktion defekt // eintrag in tabelle verpfuscht?

In diesem Forum können Mod-Autoren ihre Mods vorstellen, die sich noch im Entwicklungsstatus befinden. Der Einbau in Foren im produktiven Betrieb wird nicht empfohlen.
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.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
rnd
Mitglied
Beiträge: 15
Registriert: 25.02.2006 15:38

Quotes - Funktion defekt // eintrag in tabelle verpfuscht?

Beitrag von rnd »

Hallo!


Hab beim "Individualisieren" eines Forums irgendwie die Quotes-Funktion "eingeschränkt" und finde die Änderung nicht mehr - ich weiß, ich hab zu lange Zeit dran weiterprogrammiert, bevor mir der Fehler aufgefallen ist und kann ihn inzwischen weder nachvollziehen noch eine Sicherungskopie wiederherstellen, ohne 'ne Menge Daten zu verlieren.

Sieht aus wie folgt:
  • Alte quotes - alle - sind noch vollständig erhalten und werden richtig angezeigt.
  • Neuere quotes ohne Quellenangabe werden im Format

    Code: Alles auswählen

    [quote]text[/quote]
    richtig angezeigt
  • Neuere quotes mit Quellenangabe im Format

    Code: Alles auswählen

    [quote="vonwem"]text[/quote]
    werden als normaler text angezeigt
evtl. ist mir da irgendwo was reingerutscht, daß die " vor dem Eintragen in die Tabelle escaped ( \" oder "? ) werden - irgendetwas in der Art, denn völlig "baugleiche" (richtig angezeigte) Zitate die ich aus älteren Beiträgen kopiere und erneut poste werden danach nur noch als reiner Text angezeigt... aber wo kann sowas überall passieren?

Bin schon geraume Zeit am Suchen und dankbar für jeden Hinweis!
Benutzeravatar
Tommy_65428
Mitglied
Beiträge: 459
Registriert: 02.12.2004 18:49
Wohnort: Hamburg

Beitrag von Tommy_65428 »

Am besten erstmal die bbcode.tpl posten, da keiner wirklich weiss was du geändert hast und was noch vom original:

Code: Alles auswählen

<!-- BEGIN quote_username_open --></span>
<table width="90%" cellspacing="1" cellpadding="3" border="0" align="center">
<tr> 
	  <td><span class="genmed"><b>{USERNAME} {L_WROTE}:</b></span></td>
	</tr>
	<tr>
	  <td class="quote">
<!-- END quote_username_open -->

<!-- BEGIN quote_open --></span>
<table width="90%" cellspacing="1" cellpadding="3" border="0" align="center">
<tr> 
	  <td><span class="genmed"><b>{L_QUOTE}:</b></span></td>
	</tr>
	<tr>
	  <td class="quote"><!-- END quote_open -->
<!-- BEGIN quote_close --></td>


übrig ist. :-?
Nachdem die Suche, die KB, das Mods & Co und auch Google erfolgreich ignoriert wurden, hilft noch das verfassen von Postings und ignorieren Dieses Artikels im falschen Forum :D
rnd
Mitglied
Beiträge: 15
Registriert: 25.02.2006 15:38

Beitrag von rnd »

Danke, aber das scheint's nicht zu sein - also hab noch etwas "nachgeforscht"... die bbcode.tpl unterscheidet sich weder von der "offiziellen version" noch von irgendeiner meiner zwischenzeitlichen Seicherungskopien.

Das einzige, wovon sich die "bbcode.php" von dem (aktuellen) Original unterscheidet ist ein "$uid = md5(mt_rand());" statt dem "$uid = dss_rand();" - und da die Funktion "dss_rand()" in meinem phpbb nicht exisitert schätze ich, das wurde auch erst in einer späteren Version als die, die die Grundlage für mein Forum bildete, hinzugefügt.


In älteren (richtig angezeigten) Beiträgen steht direkt in der SQL-Tabelle, so wie es sich gehört mit :bbcode_uid:

Code: Alles auswählen

[quote:123456abc="quelle"]....
In neu eingetragenen (mit gleichem übermitteltem Text), die nicht angezegit werden:

Code: Alles auswählen

[quote="Quelle"]....

Es wird also bei neuen Einträgen (first_pass? versteh ich nicht so ganz) der bbcode nicht mehr erkannt (auch VOR dem Eintragen in die Tabelle und bei der Vorschau) - bei quotes mit Quellenangabe werden " in " umgeschrieben und der code erhält keine bbcode_uid. Es scheint wie gesagt weder an der bbcode.tpl des templates noch an der bbcode.php in den includes zu liegen.

Die Anzeige aus bereits korrekt in die Tabelle eingefügte quotes von früher funktionniert ohne Probleme.


Weiß jemand, wo ich noch suchen könnte?
meyerli
Mitglied
Beiträge: 18
Registriert: 20.04.2004 12:07
Wohnort: CH

Beitrag von meyerli »

Hab bei mir heute genau das gleiche Problem festgestellt.

Quotes ohne Namen funktionieren einwandfrei:

Code: Alles auswählen

[quote]text[/quote]
Hab ich aber einen Beitrag gequotet (resp. einen Namen drin), so wird quasi der "Source" davon angezeigt:

Code: Alles auswählen

[quote="name"]text[/quote]
Benutze selber phpBB 2.0.21 mit foldenden Mods:
- AtlasModv0.2.2
- Secure_the_first_admin_before_changes_of_other_admins_v200_emc
- Skype_Me_Extra
- topic_shadow
- smilie_creator 1.0.3
- album_v2055

Leider kann ich nicht sagen seit welchem Mod (wurden alle mit dem Forum in den letzten Tagen installiert) das Problem besteht. :cry:

Habe die Originale bbcode.tpl drüberkopiert, aber leider brachte dies nicht den gewünschten Erfolg. Auch bei anderen Styles (benutze den subBlack), welche nicht gemodet wurden, besteht das gleiche Problem...
rnd
Mitglied
Beiträge: 15
Registriert: 25.02.2006 15:38

Beitrag von rnd »

Hmh... wenigstens was: Wenn sich bei dir 'ne Lösung findet, bitte posten. Ich glaub, wir haben kein einziges Mod gemein. Vielleicht hast was vergessen?

Wenn meine "Nachforschungen" stimmen, hab ich in dem Zeitfenster, in dem es kaputt gegangen ist, das Attachment Mod und das Profile Control Panel installiert. Allerdings konnte ich bei beiden keinen Fehler finden und so ist es gut möglich, dass ich's auch einfach bei meinen privaten Anpassungen kaputt gemacht habe.

- Ist nicht vielleicht wirklich einfach irgendwie ein html_entities() oder ein html_special_chars() reingerutscht, wo keins hingehört?
- Also da es bereits bei der Vorschau-Funktion defekt ist, kann der Fehler nicht erst beim Eintragen in die Tabelle liegen - oder wird das da bereits vorläufig eingetragen statt es konventionell per post durchzureichen? Kann ich mir kaum vorstellen.
- Ich vermute einfach mal, dass es irgendwas mit regex zu tun hat (vielleicht ein falsch formuliertes preg_replace?)
- Kann ich die Möglichkeit ausschließen, dass es an der php-version auf dem server liegt? Ich glaube, zu dieser Zeit hatte ich auch einen Umzug

Die Zeilen:

Code: Alles auswählen

$html_entities_match = array('#&(?!(\#[0-9]+;))#', '#<#', '#>#', '#"#');
$html_entities_replace = array('&', '<', '>', '"');

$unhtml_specialchars_match = array('#>#', '#<#', '#"#', '#&#');
$unhtml_specialchars_replace = array('>', '<', '"', '&');
...aus der functions_post.php hab ich auch in Verdacht... aber sie entsprechen ebenfalls dem Original. Vielleicht irgendwelche Wechselwirkungen mit phpversion / servereinstellungen oder code, den ich irgendwo anders abgeändert hab (und der nun nimmer mit diesem 4 Zeilen überein stimmt)...

Die Zeilen

Code: Alles auswählen

$text = preg_replace("/\[quote:$uid=\"(.*?)\"\]/si", $bbcode_tpl['quote_username_open'], $text);
aus der bbcode.php muss ich nochmal überprüfen - wenn ich die ganze Datei gegen das Original austausche machts zwar keinen Unterschied, aber vielleicht is ja da eine regex, die sich nicht mir dem server verträgt...?


Ich schau mir's im Laufe der Woche nochmal an. Langsam wird's lästig...
rnd
Mitglied
Beiträge: 15
Registriert: 25.02.2006 15:38

Beitrag von rnd »

Puh, geschafft - vielleicht ist's bei dir ja ein ähnliches Problem.
Habe in der bbcode.php die Zeile

Code: Alles auswählen

$text = bbencode_first_pass_pda($text, $uid, '/\[quote=(\\\".*?\\\")\]/is', '[/quote]', '', false, '', "[quote:$uid=\\1]");
ersetzt durch:

Code: Alles auswählen

$text = bbencode_first_pass_pda($text, $uid, '/\[quote="(.*?)"\]/is', '[/quote]', '', false, '', "[quote:$uid=\"\\1\"]");

...

ich weiß allerdings im Moment nicht, ob die ursprüngliche Zeile das Original oder bereits ein Reparaturversuch von mir war. Steht jetzt in folgendem Kontext:

Code: Alles auswählen

	// [code] and 
for posting code (HTML, PHP, C etc etc) in your posts.
$text = bbencode_first_pass_pda($text, $uid, '', '', true, '');

// [QUOTE] and [/QUOTE] for posting replies with quote, or just for quoting stuff.
$text = bbencode_first_pass_pda($text, $uid, '[quote]', '[/quote]', '', false, '');
$text = bbencode_first_pass_pda($text, $uid, '/\[quote="(.*?)"\]/is', '[/quote]', '', false, '', "[quote:$uid=\"\\1\"]");

//
  • and
    • for (un)ordered lists.
      $open_tag = array();
      $open_tag[0] = "
      • ";
        [/code]


        Ich hab noch keine Ahnung, wie das Problem zustande gekommen ist oder wo es ursprünglich lag. Weiß auch nicht, ob durch die improvisierte Lösung nicht evtl noch ein anderes ensteht oder ob's in irgendeiner weise nicht sicher ist. Vielleicht hab ich auch irgendwas ganz verplant, aber nun gehts zumindest bei mir und ich geh jetzt schlafen. gn8 ;)
meyerli
Mitglied
Beiträge: 18
Registriert: 20.04.2004 12:07
Wohnort: CH

Beitrag von meyerli »

Das Problem wurde durch den Smilie Creator Mod verursacht, resp. durch einen Fehler den mir beim modden unterlaufen ist. Hab die Originale bbcode.php zurückgespielt und nochmals neu gemoddet. Funktioniert nun wunderbar. Danke für deinen Tip :)
julelustig
Mitglied
Beiträge: 4
Registriert: 23.05.2006 22:18

Ähnliches, aber nicht gleiches Problem

Beitrag von julelustig »

Hallo,

auch in meinem Forum funzt die quote nur wie oben beschrieben, ohne Namen, aber nicht mit (dann wird nur ein Text übergeben).
Die Lösung von oben funktioniert bei mir nicht, die Dateien bbcode.php und bbcode.tpl enthalten beide die korrekten Lines.

Ich wundere mich etwas darüber, dass die Funktion nicht tut, denn vor etwa einem Jahr haben wir das Forum komplett geupdatet, und das Problem besteht nach wie vor.

MODS habe ich folgende (wobei ich mich nicht erinnere, das eines davon bbcode-Dateien ändert):

-Pseudosubforen
-optischer Loginfilter (weiß nicht mehr wie das hieß, änderte den eingebauten optischen Filter beim Registrieren, damit die Bots nicht mehr durchkommen)
-Humanizer

Ist das vielleicht n Datenbankproblem?

Beste Grüße,
Jule
ferret
Mitglied
Beiträge: 10
Registriert: 27.12.2006 13:15

Beitrag von ferret »

//erledigt
Antworten

Zurück zu „phpBB 2.0: Mods in Entwicklung“