update to 2.017 Problem bbcode.php

Allgemeiner Support zum phpBB 2 Board und phpBB 2 Modifikationen
Forumsregeln
Auch wenn hier der Support für phpBB 2 weiterhin aufrecht erhalten bleibt, weisen wir darauf hin, dass das phpBB 2 nicht mehr offiziell unterstützt und weiterentwickelt wird!
Antworten
Kiss News
Beiträge: 389
Registriert: So 25.Jul, 2004 18:22

update to 2.017 Problem bbcode.php

Beitrag von Kiss News »

Hallo!
Nach dem update to 2.016 habe ich immer noch das Problem mit der Signatur.
Wie auch immer, im update to 2.017 kann ich folgendes nicht machen:
includes/bbcode.php

#
#-----[ FIND ]---------------------------------------------
# Line 203
$patterns[] = "#\[url\]([\w]+?://[^ \"\n\r\t<]*?)\[/url\]#is";
$replacements[] = $bbcode_tpl['url1'];

// http://www.phpbb.com code.. (no xxxx:// prefix).
$patterns[] = "#\[url\]((www|ftp)\.[^ \"\n\r\t<]*?)\[/url\]#is";
$replacements[] = $bbcode_tpl['url2'];

// [url=xxxx://www.phpbb.com]phpBB[/url] code..
$patterns[] = "#\+?://[^ \"\n\r\t<]*?)\]([^?\n\r\t].*?)\[/url\]#is";
$replacements[] = $bbcode_tpl['url3'];

// [url=http://www.phpbb.com]phpBB
code.. (no xxxx:// prefix).
$patterns[] = "#\*?)\]([^?\n\r\t].*?)\[/url\]#is";

#
#-----[ REPLACE WITH ]---------------------------------------------
#
$patterns[] = "#\[url\]([\w]+?://[\w\#$%&~/.\-;:=,?@\[\]+]*?)\[/url\]#is";
$replacements[] = $bbcode_tpl['url1'];

// [url]http://www.phpbb.com
code.. (no xxxx:// prefix).
$patterns[] = "#\[url\]((www|ftp)\.[\w\#$%&~/.\-;:=,?@\[\]+]*?)\[/url\]#is";
$replacements[] = $bbcode_tpl['url2'];

// [url=xxxx://www.phpbb.com]phpBB[/url] code..
$patterns[] = "#\+?://[\w\#$%&~/.\-;:=,?@\[\]+]*?)\]([^?\n\r\t].*?)\[/url\]#is";
$replacements[] = $bbcode_tpl['url3'];

// [url=http://www.phpbb.com]phpBB
code.. (no xxxx:// prefix).
$patterns[] = "#\+]*?)\]([^?\n\r\t].*?)\[/url\]#is";

#
#-----[ FIND ]---------------------------------------------
# Line 627
$ret = preg_replace("#(^|[\n ])([\w]+?://[^ \"\n\r\t<]*)#is", "\\1<a href=\"\\2\" target=\"_blank\">\\2</a>", $ret);

// matches a "www|ftp.xxxx.yyyy[/zzzz]" kinda lazy URL thing
// Must contain at least 2 dots. xxxx contains either alphanum, or "-"
// zzzz is optional.. will contain everything up to the first space, newline,
// comma, double quote or <.
$ret = preg_replace("#(^|[\n ])((www|ftp)\.[^ \"\t\n\r<]*)#is", "\\1<a href=\"http://\\2\" target=\"_blank\">\\2</a>", $ret);

#
#-----[ REPLACE WITH ]---------------------------------------------
#
$ret = preg_replace("#(^|[\n ])([\w]+?://[\w\#$%&~/.\-;:=,?@\[\]+]*)#is", "\\1<a href=\"\\2\" target=\"_blank\">\\2</a>", $ret);

// matches a "www|ftp.xxxx.yyyy[/zzzz]" kinda lazy URL thing
// Must contain at least 2 dots. xxxx contains either alphanum, or "-"
// zzzz is optional.. will contain everything up to the first space, newline,
// comma, double quote or <.
$ret = preg_replace("#(^|[\n ])((www|ftp)\.[\w\#$%&~/.\-;:=,?@\[\]+]*)#is", "\\1<a href=\"http://\\2\" target=\"_blank\">\\2</a>", $ret);


Das gibt es bei mir nicht. Seltsamerw ... .phpbb.com code.. (no xxxx:// prefix).
$patterns[] = "#\[url\]((www|ftp)\.([\w\-]+\.)*[\w]+(:[0-9]+)?(/[^ \"\n\r\t<]*?)?)\[/url\]#si";
$replacements[] = $bbcode_tpl['url2'];

$patterns[] = "#\+?://[^ \"\n\r\t<]*?)\]([^?\n\r\t].*?)\[/url\]#is";
$replacements[] = $bbcode_tpl['url3'];

// [url=http://www.phpbb.com]phpBB
code.. (no xxxx:// prefix).
$patterns[] = "#\[url=((www|ftp)\.[^ \"\n\r\t<]*?)\]([^?\n\r\t].*?)\[/url\]#is";[/quote]

und
$ret = preg_replace("#([\t\r\n ])([a-z0-9]+?){1}://([\w\-]+\.([\w\-]+\.)*[\w]+(:[0-9]+)?(/[^ \"\n\r\t<]*)?)#i", '\1<a href="\2://\3" target="_blank">\2://\3</a>', $ret);

// matches a "www|ftp.xxxx.yyyy[/zzzz]" kinda lazy URL thing
// Must contain at least 2 dots. xxxx contains either alphanum, or "-"
// zzzz is optional.. will contain everything up to the first space, newline,
// comma, double quote or <.
$ret = preg_replace("#([\t\r\n ])(www|ftp)\.(([\w\-]+\.)*[\w]+(:[0-9]+)?(/[^ \"\n\r\t<]*)?)#i", '\1<a href="http://\2.\3" target="_blank">\2.\3</a>', $ret);
soll ich die Teile trotzdem ersetzen, obwohl sie nicht übereinstimmen oder was soll ich denn da machen? Danke für die Info!!
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Ja, genau das soll ersetzt werden.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Kiss News
Beiträge: 389
Registriert: So 25.Jul, 2004 18:22

Beitrag von Kiss News »

irgendwie kann ich beim anderen Thema nicht posten, da die Buttons fehlen, jetzt poste ich mal hier weiter:

ich bin jetzt bei 2.017. Auf 2.018 updaten werde ich nicht mehr, da bin ich chancenlos, was da alles gesucht wurde, das habe ich gar nicht so.

Leider ist die Signatur bei mir immer noch im Eimer, siehe hier:
http://www.kissforum.de/phpbb2/viewtopi ... 271#116271

der Fehler trat beim update zu 2.015 auf und wurde bis zu 2.017 nicht korregiert. Hast Du vielleicht eine Ahnung, welches update diesen Fehler wieder ausbügelt? Vielleicht die Änderungen in includes/bbcode.php?
Danke!
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Mach doch erstmal die Updates fertig, dann sehen wir weiter :(
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Kiss News
Beiträge: 389
Registriert: So 25.Jul, 2004 18:22

Beitrag von Kiss News »

wenn es irgendwie gehen würde, würde ich es ja machen, aber es ist chancenlos, in der common.php habe ich so gut wie nichts von dem, was gesucht wird.... zum Beispiel:

das habe ich überhaupt nicht:
#-----[ FIND ]---------------------------------------------
#
// The following code (unsetting globals) was contributed by Matt Kavanagh

#
#-----[ REPLACE WITH ]---------------------------------------------
#
// The following code (unsetting globals)
// Thanks to Matt Kavanagh and Stefan Esser for providing feedback as well as patch files
gut, das ist unwichtig, ist sowieso ausgeklammert... aber so geht es weiter.... das nächste ist auch nicht so da wie gesucht:
#-----[ FIND ]---------------------------------------------
#
// PHP5 with register_long_arrays off?
if (!isset($HTTP_POST_VARS) && isset($_POST))
{
$HTTP_POST_VARS = $_POST;
$HTTP_GET_VARS = $_GET;
$HTTP_SERVER_VARS = $_SERVER;
$HTTP_COOKIE_VARS = $_COOKIE;
$HTTP_ENV_VARS = $_ENV;
$HTTP_POST_FILES = $_FILES;

// _SESSION is the only superglobal which is conditionally set
if (isset($_SESSION))
{
$HTTP_SESSION_VARS = $_SESSION;
}
}

#
#-----[ REPLACE WITH ]---------------------------------------------
#
// PHP5 with register_long_arrays off?
if (@phpversion() >= '5.0.0' && (!@ini_get('register_long_arrays') || @ini_get('register_long_arrays') == '0' || strtolower(@ini_get('register_long_arrays')) == 'off'))
{
$HTTP_POST_VARS = $_POST;
$HTTP_GET_VARS = $_GET;
$HTTP_SERVER_VARS = $_SERVER;
$HTTP_COOKIE_VARS = $_COOKIE;
$HTTP_ENV_VARS = $_ENV;
$HTTP_POST_FILES = $_FILES;

// _SESSION is the only superglobal which is conditionally set
if (isset($_SESSION))
{
$HTTP_SESSION_VARS = $_SESSION;
}
}

// Protect against GLOBALS tricks
if (isset($HTTP_POST_VARS['GLOBALS']) || isset($HTTP_POST_FILES['GLOBALS']) || isset($HTTP_GET_VARS['GLOBALS']) || isset($HTTP_COOKIE_VARS['GLOBALS']))
{
die("Hacking attempt");
}

// Protect against HTTP_SESSION_VARS tricks
if (isset($HTTP_SESSION_VARS) && !is_array($HTTP_SESSION_VARS))
{
die("Hacking attempt");
}
bei mir finde ich zumindest einen Teil davon, sieht aber anders aus:
// PHP5 with register_long_arrays off?
if (!isset($HTTP_POST_VARS) && isset($_POST))
{
$HTTP_POST_VARS = $_POST;
$HTTP_GET_VARS = $_GET;
$HTTP_SERVER_VARS = $_SERVER;
$HTTP_COOKIE_VARS = $_COOKIE;
$HTTP_ENV_VARS = $_ENV;
$HTTP_POST_FILES = $_FILES;
}
//
// addslashes to vars if magic_quotes_gpc is off
// this is a security precaution to prevent someone
// trying to break out of a SQL statement.
//
if( !get_magic_quotes_gpc() )
{
if( is_array($HTTP_GET_VARS) )
{
while( list($k, $v) = each($HTTP_GET_VARS) )
{
if( is_array($HTTP_GET_VARS[$k]) )
{
while( list($k2, $v2) = each($HTTP_GET_VARS[$k]) )
{
$HTTP_GET_VARS[$k][$k2] = addslashes($v2);
}
@reset($HTTP_GET_VARS[$k]);
}
else
{
$HTTP_GET_VARS[$k] = addslashes($v);
}
}
@reset($HTTP_GET_VARS);
}
das nächste, was gesucht wird, finde ich auch nicht... :(
#-----[ FIND ]---------------------------------------------
#
if (@phpversion() < '4.0.0')
{
// PHP3 path; in PHP3, globals are _always_ registered

// We 'flip' the array of variables to test like this so that
// we can validate later with isset($test[$var]) (no in_array())
$test = array('HTTP_GET_VARS' => NULL, 'HTTP_POST_VARS' => NULL, 'HTTP_COOKIE_VARS' => NULL, 'HTTP_SERVER_VARS' => NULL, 'HTTP_ENV_VARS' => NULL, 'HTTP_POST_FILES' => NULL, 'phpEx' => NULL, 'phpbb_root_path' => NULL);

// Loop through each input array
@reset($test);
while (list($input,) = @each($test))
{
while (list($var,) = @each($$input))
{
// Validate the variable to be unset
if (!isset($test[$var]) && $var != 'test' && $var != 'input')
{
unset($$var);
}
}
}
}
else if (@ini_get('register_globals') == '1' || strtolower(@ini_get('register_globals')) == 'on')
{

#
#-----[ REPLACE WITH ]---------------------------------------------
#
if (@ini_get('register_globals') == '1' || strtolower(@ini_get('register_globals')) == 'on')
{
ich habe da nach mehreren Teilen gesucht, ich habe nicht mal irgendeinen Teil davon finden können... :(

und das nächste ebenso...
#-----[ FIND ]---------------------------------------------
#
if (!isset($HTTP_SESSION_VARS))
{
$HTTP_SESSION_VARS = array();
}

// Merge all into one extremely huge array; unset
// this later
$input = array_merge($HTTP_GET_VARS, $HTTP_POST_VARS, $HTTP_COOKIE_VARS, $HTTP_SERVER_VARS, $HTTP_SESSION_VARS, $HTTP_ENV_VARS, $HTTP_POST_FILES);

unset($input['input']);
unset($input['not_unset']);

while (list($var,) = @each($input))
{
if (!in_array($var, $not_unset))
{
unset($$var);
}
}

unset($input);
}

#
#-----[ REPLACE WITH ]---------------------------------------------
#
if (!isset($HTTP_SESSION_VARS) || !is_array($HTTP_SESSION_VARS))
{
$HTTP_SESSION_VARS = array();
}

// Merge all into one extremely huge array; unset
// this later
$input = array_merge($HTTP_GET_VARS, $HTTP_POST_VARS, $HTTP_COOKIE_VARS, $HTTP_SERVER_VARS, $HTTP_SESSION_VARS, $HTTP_ENV_VARS, $HTTP_POST_FILES);

unset($input['input']);
unset($input['not_unset']);

while (list($var,) = @each($input))
{
if (!in_array($var, $not_unset))
{
unset($$var);
}
}

unset($input);
}
ich kann ja nicht einfach die common.php vom update auslassen, oder doch?
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Nein! Ersetze die "ähnlichen" Blöcke komplett. Das ist wichtig und auch mal irgendwo so beschrieben worden, damit die Sicherheit wieder auf "Vordermann" gebracht werden kann.
Unterschiedliche Blöcke bedeuten hier auch schon Wildwuchs.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Kiss News
Beiträge: 389
Registriert: So 25.Jul, 2004 18:22

Beitrag von Kiss News »

Danke für die Info. Die Frage ist jedoch, wo die "ähnlichen Blöcke" anfangen bzw. aufhören. Etwa habe ich beim ersten gesuchten Block die letzten Zeilen nicht. Soll ich das ignorieren? Und was ist, wenn ich einen Block gar nicht finde? Soll ich den dann einfach nur IRGENDWO einfügen?
Ergibt das nicht einen Error dann, oder ist das eigentlich egal? Danke für die Info!

edit: Ähm, bei mir funktioniert die Eingabe von Links mit dem URL Button nach dem update to 2.017 nicht
kann die Url aber so in den Beitrag eingeben, also einfach http:/.....
Zuletzt geändert von Kiss News am Di 31.Jan, 2006 15:31, insgesamt 1-mal geändert.
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Warum nimmst Du als Vergleich nicht mal ein neues phpBB 2.0.19???
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Kiss News
Beiträge: 389
Registriert: So 25.Jul, 2004 18:22

Beitrag von Kiss News »

OK, bin gerade dabei...
habe soeben bemerkt, dass man NUR die letzte PN löschen kann. Alle anderen nicht. Wenn ich eine PN speichere, kann ich sie im Archiv allerdings löschen. Habe mal auf "alle Pns löschen" geklickt. Ging nicht, danach stand aber im Posteingang (0) ...

ist das auch was, was im update behoben wird?
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Nein, der Fehler ist selbst mir neu...
Vielleicht aber auch ein MOD???
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Kiss News
Beiträge: 389
Registriert: So 25.Jul, 2004 18:22

Beitrag von Kiss News »

lag an der privmsg.php nach dem update to 2.017.
Habe jetzt wieder die alte privmsg.php reingegeben und jetzt funktioniert es wieder. Habe auch die alte bbcode.php reingegeben, jetzt funktioniert die Signatur und die URL Links wieder. Macht doch nichts, wenn ich diese beiden Dateien NICHT update, oder?
Zuletzt geändert von Kiss News am Mi 01.Feb, 2006 19:21, insgesamt 1-mal geändert.
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Nein, ist nur unsicherer, als nachher...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Kiss News
Beiträge: 389
Registriert: So 25.Jul, 2004 18:22

Beitrag von Kiss News »

verstehe...
nunja, jetzt stecke ich aber wieder fest... :(

#-----[ OPEN ]---------------------------------------------
#
includes/functions.php

#
#-----[ FIND ]---------------------------------------------
# NOTE --- Removing trailing whitespaces
#
$username = phpbb_rtrim($username, "\\");

#
#-----[ REPLACE WITH ]---------------------------------------------
#
$username = phpbb_rtrim($username, "\\");
das Ding habe ich schon wieder nicht, habe mal in php2.019 nachgesehen, da sollte stehen:
// added at phpBB 2.0.11 to properly format the username
function phpbb_clean_username($username)
{
$username = substr(htmlspecialchars(str_replace("\'", "'", trim($username))), 0, 25);
$username = phpbb_rtrim($username, "\\");
$username = str_replace("'", "\'", $username);

return $username;
}
bei mir steht aber:
// added at phpBB 2.0.11 to properly format the username
function phpbb_clean_username($username)
{
$username = htmlspecialchars(rtrim(trim($username), "\\"));
$username = substr(str_replace("\\'", "'", $username), 0, 25);
$username = str_replace("'", "\\'", $username);

return $username;
}
was soll ich jetzt tun?
a) nichts
b) die Zeile
$username = phpbb_rtrim($username, "\\");
dazu einfügen?


dann finde ich auch das nicht:
#-----[ FIND ]---------------------------------------------
#
// added at phpBB 2.0.12 to fix a bug in PHP 4.3.10 (only supporting charlist in php >= 4.1.0)
function phpbb_rtrim($str, $charlist = false)
ich habe den ganzen dazugehörigen Block gar nicht (aus php2.019):
// added at phpBB 2.0.12 to fix a bug in PHP 4.3.10 (only supporting charlist in php >= 4.1.0)
function phpbb_rtrim($str, $charlist = false)
{
if ($charlist === false)
{
return rtrim($str);
}

$php_version = explode('.', PHP_VERSION);

// php version < 4.1.0
if ((int) $php_version[0] < 4 || ((int) $php_version[0] == 4 && (int) $php_version[1] < 1))
{
while ($str{strlen($str)-1} == $charlist)
{
$str = substr($str, 0, strlen($str)-1);
}
}
else
{
$str = rtrim($str, $charlist);
}

return $str;
}
was soll ich nun tun?
a) nichts
b) den kompletten Block einfügen?

Danke für Deine Hilfe!
Antworten