Gelöst: SQL-Fehlermeldung bei längerem Text für Tipp-Anzeige

Fragen zur Bedienung von phpBB 3.0.x, Probleme bei der Benutzung und alle weiteren Fragen inkl. Update auf die neuste phpBB 3.0.14 Version
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.
Benutzeravatar
dieweltist
Mitglied
Beiträge: 1966
Registriert: 25.07.2006 13:28
Wohnort: Thüringen
Kontaktdaten:

Gelöst: SQL-Fehlermeldung bei längerem Text für Tipp-Anzeige

Beitrag von dieweltist »

>Adminbereich - BB-Code ändern oder hinzufügen<

Wenn der Text für eine Tipp-Anzeige zu lang ist, erscheint bspw. so eine Fehlermeldung:
Allgemeiner Fehler
SQL ERROR [ mysqli ]

Data too long for column 'bbcode_helpline' at row 1 [1406]

SQL

UPDATE p_bbcodes SET bbcode_tag = 'rti=', bbcode_match = '[rti={NUMBER}]{TEXT}[/rti]', bbcode_tpl = '<table border=\"{NUMBER}\"><tr><td>{TEXT}</td></tr></table>', display_on_posting = 1, bbcode_helpline = 'Einzelne Tabellenzelle als Rahmen mit individueller Liniendicke: [rti=Rahmendicke in px]Text[/rti] px nicht mitschreiben! Auch geeignet, um Textfeld von BB-Code "Code" für Computercode zu kürzen. Dazu ggf. zuerst den PC-Code mit BB-Code "Code" umschließen', first_pass_match = '!\\[rti\\=([0-9]+)\\](.*?)\\[/rti\\]!ies', first_pass_replace = '\'[rti=${1}:$uid]\'.str_replace(array(\"\\r\\n\", \'\\\"\', \'\\\'\', \'(\', \')\'), array(\"\\n\", \'\"\', \''\', \'(\', \')\'), trim(\'${2}\')).\'[/rti:$uid]\'', second_pass_match = '!\\[rti\\=([0-9]+):$uid\\](.*?)\\[/rti:$uid\\]!s', second_pass_replace = '<table border=\"${1}\"><tr><td>${2}</td></tr></table>' WHERE bbcode_id = 103

BACKTRACE

FILE: includes/db/mysqli.php
LINE: 143
CALL: dbal->sql_error()

FILE: includes/acp/acp_bbcodes.php
LINE: 225
CALL: dbal_mysqli->sql_query()

FILE: includes/functions_module.php
LINE: 471
CALL: acp_bbcodes->main()

FILE: adm/index.php
LINE: 74
CALL: p_master->load_active()
In diesem Beitrag (klick), die letzte Tipp-Anzeige ganz unten, sollte ursprünglich dieser Text gewesen sein:
Einzelne Tabellenzelle als Rahmen mit individueller Liniendicke: [rti=Rahmendicke in px]Text[/rti] px nicht mitschreiben! Auch geeignet, um Textfeld von BB-Code "Code" für Computercode zu kürzen. Dazu ggf. zuerst den PC-Code mit BB-Code "Code" umschließen
Dieser Text löste aber die oben stehende SQL-Fehlermeldung aus. Nachdem ich diesen Info-Text etwas kürzte, wurde der BB-Code einwandfrei abgespeichert. Übrigens finde ich es prima, dass man so viele Zeichen für die Tipp-Anzeige verwenden kann. Wenn noch mehr Zeichen möglich wären, wäre es meines Erachtens noch besser.

Inzwischen habe ich herausgefunden, dass dieser Text genau 255 Zeichen lang ist, und somit problemlos abgespeichert werden können müsste. Bei nachfolgendem BB-Code habe ich zum Test diese 255 Zeichen probeweise als Tooltipp versucht abzuspeichern, was einwandfrei funktionierte. Aber eigentlich wollte ich den anderen Text dort haben. :grin:
123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 1234567890123456789012345678901234567890123456789012345
Zuletzt geändert von dieweltist am 16.08.2008 00:35, insgesamt 2-mal geändert.
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17476
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Beitrag von Dr.Death »

Hi,

melde das mal bitte im Bugtracker --> http://www.phpbb.com/bugs/phpbb3
Benutzeravatar
dieweltist
Mitglied
Beiträge: 1966
Registriert: 25.07.2006 13:28
Wohnort: Thüringen
Kontaktdaten:

Beitrag von dieweltist »

Statt dessen könnte man auch die in der Fehlermeldung angegebene Einstellung in der Datenbank ändern. Vielleicht geht das dann sogar.
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17476
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Beitrag von Dr.Death »

Naja, dann hast DU es gelöst, aber nicht alle anderen ;-)
Benutzeravatar
dieweltist
Mitglied
Beiträge: 1966
Registriert: 25.07.2006 13:28
Wohnort: Thüringen
Kontaktdaten:

Beitrag von dieweltist »

Ich hatte mich mit meinem letztem Beitrag geirrt. Sonst kann ma ja auch einen Text von bis zu 255 Zeichen Länge als Tooltipp abspeichern; nur bei diesem Text geht das nicht. Weil also sowieso schon irgendwo in der Datenbank 255 Zeichen als Maximalwert angegeben ist, würde eine weitere Erhöhung wahrscheinlich das Problem nicht lösen.

Es wäre nett, wenn irgend ein anderer User das im Bugtracker melden würde, denn ich beherrsche die englische Sprache nicht; und würde quasi nur im "Notfall" das dort erledigen mit gebrochenem Google- oder Babelfish-Automatenenglisch.
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17476
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Beitrag von Dr.Death »

Ah,
ok... ich hab gerade auch in der DB nachgesehen.

Dies ist also kein Bug da die Länge auf 255 Zeichen beschränkt wurde.

Ich habe mal versucht den Fehler in einem phpBB3.0.2 Forum nachzustellen.

Ohne Erfolg. Die Eingabe lässt es nicht zu, mehr als 255 einzutragen.
Einzelne Tabellenzelle als Rahmen mit individueller Liniendicke: [rti=Rahmendicke in px]Text[/rti] px nicht mitschreiben! Auch geeignet, um Textfeld von BB-Code "Code" für Computercode zu kürzen. Dazu ggf. zuerst den PC-Code mit BB-Code "Code" umschließen
wird dann zu:
Einzelne Tabellenzelle als Rahmen mit individueller Liniendicke: [rti=Rahmendicke in px]Text[/rti] px nicht mitschreiben! Auch geeignet, um Textfeld von BB-Code "Code" für Computercode zu kürzen. Dazu ggf. zuerst den PC-Code mit BB-Code "Co
Vielleicht verwendest Du kein aktuelles phpBB 3.0.2 ?

Ansonsten könntest Du mal die Datei:

adm / style / acp_bbcodes.html
erneuern oder prüfen ob folgender Code vorhanden ist:
<dl>
<dt><label for="bbcode_helpline">{L_BBCODE_HELPLINE_TEXT}</label></dt>
<dd><input type="text" id="bbcode_helpline" name="bbcode_helpline" size="60" maxlength="255" value="{BBCODE_HELPLINE}" /></dd>
</dl>
Benutzeravatar
cYbercOsmOnauT
Ehemaliges Teammitglied
Beiträge: 3820
Registriert: 18.02.2004 23:02
Wohnort: Göttingen
Kontaktdaten:

Beitrag von cYbercOsmOnauT »

Hast Du auch den mySQLi Wrapper verwendet Dr.? Weil mySQL kürzt rigeros gespeicherte Texte auf 255 Zeichen, wenn das Feld z.B. VARCHAR(255) ist. Andere Datenbanken geben da einen Fehler aus.

Nur mal anmerk. ;)

Grüße,
Tekin
• prof. phpbb-Installation, Reparatur, Rettung nach Hackattacken, sowie PHP/JS Programmierung aller Art
Zend Certified Engineer, Linux Administrator und die Sicherheit von 34 Jahren Programmiererfahrung
• Interesse? Kontakt unter t.birduezen@web-coding.eu
Benutzeravatar
dieweltist
Mitglied
Beiträge: 1966
Registriert: 25.07.2006 13:28
Wohnort: Thüringen
Kontaktdaten:

Beitrag von dieweltist »

Der Text hat doch auch nur 255 Zeichen (ich habe nachgezählt). Ich musste schon das Ausrufezeichen am Ende weglassen, denn dieses passte schon nicht mehr in das Feld. Und der bei Dir von der Datenbank gekürzte Text hat nur 240 Zeichen. Also doch ein Bug.

Nur; wenn man ihn meldet, wie wird dieser Bug dann beseitigt? Hoffentlich nicht dadurch, indem man die maximale Länge auf 240 begrenzt. Dann sollte es doch bessser so bleiben. Ab und an mal eine SQL-Fehlermeldung ist nicht tragisch.
Zuletzt geändert von dieweltist am 12.08.2008 15:21, insgesamt 1-mal geändert.
Benutzeravatar
cYbercOsmOnauT
Ehemaliges Teammitglied
Beiträge: 3820
Registriert: 18.02.2004 23:02
Wohnort: Göttingen
Kontaktdaten:

Beitrag von cYbercOsmOnauT »

Ich denke trotzdem, dass es ein mySQLi Problem ist. Wenn Du ne normale mySQL DB verwendest, würde ich in der config.php die $dbms mal auf mysql änden und nochmal probieren.
• prof. phpbb-Installation, Reparatur, Rettung nach Hackattacken, sowie PHP/JS Programmierung aller Art
Zend Certified Engineer, Linux Administrator und die Sicherheit von 34 Jahren Programmiererfahrung
• Interesse? Kontakt unter t.birduezen@web-coding.eu
Benutzeravatar
bantu
Server-Team
Beiträge: 7311
Registriert: 25.04.2006 16:12
Wohnort: Karlsruhe

Beitrag von bantu »

maxlenght im html reicht nicht aus. Da sollte in PHP ein $error generiert werden, wenn der Text länger als gewünscht ist. Zur Not einfach als Bug melden.

Edit: Bitte als Bug melden.
Edit2: Erledigt. Siehe http://code.phpbb.com/repositories/revision/5?rev=8743
Powered by Coffee
Antworten

Zurück zu „[3.0.x] Administration, Benutzung und Betrieb“