Seite 1 von 2
Wortlänge begrenzen
Verfasst: 11.10.2003 13:52
von Pumi
In einem anderen Forum (Gruß an Goenz) ist mir ein Spaßvogel aufgefallen, der ein "soooooooooooooooooooooooooooooooooooooooooo..." langes Wort in seinen Beitrag eingebaut hat. Dadurch war kein Zeilenumbruch mehr möglich und das ganze Forum wurde in die Breite gezogen (Querscroller).
Ist es möglich soetwas zu unterbinden? Etwa indem zu lange Worte nach 50 Zeichen automatisch umgebrochen werden oder via Fehlermeldung ganz untersagt werden.
Nee, ich träume nicht von einer automatischen Silbentrennung...
Verfasst: 12.10.2003 18:52
von Underhill
Los Wochos,
fuer die
Betreffzeile(Titel) hatte ich mir das schon mal gebaut...
http://www.phpbb.de/viewtopic.php?t=36970
Aber ich schau mir das mal an...
Gruss
Underhill
PS: Kann ein paar Tage dauern...
Verfasst: 12.10.2003 19:04
von Pumi
Danke schonmal für deine Bemühungen.
Was du da für die Betreff-Zeile gemacht hast, ist prima. Die 20x wiederholten Zeichen sind auch nervig. Aber das ist nicht dasselbe Problem: das Layout wird ja z.B. auch zerschossen, wenn ein Spaßvogel seinen ganzen Beitrag ohne Leerzeichen dazwischen eingibt.
Verfasst: 13.10.2003 19:53
von Underhill
Los Wochos,
hier der Code:
[includes\functions_post.php]
Code: Alles auswählen
// Check message
if (!empty($message))
{
$bbcode_uid = ($bbcode_on) ? make_bbcode_uid() : '';
$message = prepare_message(trim($message), $html_on, $bbcode_on, $smilies_on, $bbcode_uid);
}
else if ($mode != 'delete' && $mode != 'poll_delete')
{
$error_msg .= (!empty($error_msg)) ? '<br />' . $lang['Empty_message'] : $lang['Empty_message'];
}
ersetzen durch:
Code: Alles auswählen
// Check message
if (!empty($message))
{
$message = eregi_replace("([^[:blank:]]{50})", "\\1 ", $message);
$bbcode_uid = ($bbcode_on) ? make_bbcode_uid() : '';
$message = prepare_message(trim($message), $html_on, $bbcode_on, $smilies_on, $bbcode_uid);
}
else if ($mode != 'delete' && $mode != 'poll_delete')
{
$error_msg .= (!empty($error_msg)) ? '<br />' . $lang['Empty_message'] : $lang['Empty_message'];
}
Aber 8tung!:
Das haut einfach gnadenlos nach 50 Zeichen (an einem Stueck) ein leerzeichen rein... Lange links werden dadurch zerstoert...
Konnte es bisher nur fuer new/edit testen...
Gruss
Underhill
50Zeichen
Verfasst: 14.10.2003 12:26
von Underhill
Ok, habe es getestet.. Klappt einwandfrei...
hier als MOD:
Code: Alles auswählen
#################################################################
## Mod Title: 50 Zeichen MOD
## Author: Underhill <webmaster@underhill.de>
## MOD Description: Erzwingt ein Leerzeichen nach einer zusammenhaengenden Zeichenfolge von 50 in einer Nachricht. Gegen Benutzer die mit extrem langen Worten ein horizontales Scrolling erzwingen wollen und damit das Design zerstoeren. Warnung: Auch lange Hyperlinks werden gekappt! Erstellt und getestet mit phpBB2.0.6 - Sollte aber auch abwaertskompatibel sein...
## Mod Version: 1.0.0
##
## Installation Level: Leicht
## Installation Time: 2 Minutes
##
## Files To Edit: 1
## includes\functions_post.php
##
## Included Files: N/A
#################################################################
## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD
#################################################################
#
#-----[ OPEN ]------------------------------------------
#
includes/functions_post.php
#
#-----[ FIND ]------------------------------------------
#
// Check message
if (!empty($message))
{
$bbcode_uid = ($bbcode_on) ? make_bbcode_uid() : '';
$message = prepare_message(trim($message), $html_on, $bbcode_on, $smilies_on, $bbcode_uid);
}
#
#-----[ REPLACE WITH ]------------------------------------------
#
// Check message
if (!empty($message))
{
$message = eregi_replace("([^[:blank:]]{50})", "\\1 ", $message);
$bbcode_uid = ($bbcode_on) ? make_bbcode_uid() : '';
$message = prepare_message(trim($message), $html_on, $bbcode_on, $smilies_on, $bbcode_uid);
}
#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
#
# EoM
Gruss
Underhill
Verfasst: 14.10.2003 21:53
von Pumi
Danke !!!
Könnte man das Zerstören von langen Hyperlinks unterdrücken indem man nur Strings untersucht, die nicht mit "http:" beginnen?
Sorry, wenn ich dich als Coder missbrauche. Ich weiß, was ich sagen will, nur fehlen mir die Sprachkenntnisse...
Verfasst: 14.10.2003 21:58
von Underhill
Los Wochos,
Pumi hat geschrieben:..Könnte man das Zerstören von langen Hyperlinks unterdrücken indem man nur Strings untersucht, die nicht mit "http:" beginnen?...
http: oder https: oder ftp: oder file: --> Wo ist da das Ende?
Ich bin aber der Meinung das 50 Zeichen fuer einen Hyperlink reichen sollten...
Gruss
Underhill
Verfasst: 14.10.2003 22:03
von Pumi
Underhill hat geschrieben:Los Wochos,
http: oder https: oder ftp: oder file: --> Wo ist da das Ende?

Hast recht! Hab nicht weit genug gedacht...

Verfasst: 14.10.2003 22:10
von Underhill
@Pumi:
Hast du das Ding denn mal getestet?
Danke und Gruss
Underhill
Verfasst: 14.10.2003 22:20
von Pumi
... bin grad dabei.
Etwas Unerwünschtes ist mir schon aufgefallen:
das 51. Zeichen wird durch das Leerzeichen
ersetzt.
Das ist bei sooooooo... langen Worten natürlich egal. Aber wenn es nicht nur Buchstabenwiederholungen, sondern eben lange Worte sind, dann fehlt halt ein Buchstabe.
Bsp:
aus 123456789012345678901234567890123456789012345678901234567890
wird
12345678901234567890123456789012345678901234567890 234567890
Nochwas:
Beim Einbauen hab ich gemerkt, dass nicht
sondern
gesucht werden muss (zwei Leerzeichen mehr).