Seite 1 von 1

Quotes - Funktion defekt // eintrag in tabelle verpfuscht?

Verfasst: 24.11.2006 21:23
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!

Verfasst: 24.11.2006 21:59
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. :-?

Verfasst: 25.11.2006 14:42
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?

Verfasst: 03.12.2006 22:02
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...

Verfasst: 03.12.2006 23:47
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...

Verfasst: 04.12.2006 00:37
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 ;)

Verfasst: 04.12.2006 19:47
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 :)

Ähnliches, aber nicht gleiches Problem

Verfasst: 08.01.2007 08:42
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

Verfasst: 26.01.2007 10:21
von ferret
//erledigt