4images Forum & Community
Welcome, Guest. Please login or register.
Did you miss your activation email?
September 20, 2018, 05:30:15 AM

Login with username, password and session length
Search:     Advanced search
Check the new Tutorial subforum with helpfull guides and tutorials for modifications and tweaks.
Togle to toolbar
Translate this page with =>
Translate this page >
* Home Help Search Login Register
 
+  4images Forum & Community
|-+  4images Help / Hilfe
| |-+  Bug Fixes & Patches
| | |-+  1.7.2 - 1.7.4 [FIX] mit Umlauten in Kommentaren-/Suche - Comments-/Search
0 Members and 1 Guest are viewing this topic. « previous next »
Pages: [1] 2 3 4 » »» Print
Author Topic: 1.7.2 - 1.7.4 [FIX] mit Umlauten in Kommentaren-/Suche - Comments-/Search  (Read 103052 times)
ivan
4images Moderator
4images Guru
*****
Offline Offline

Posts: 2279

Thank You
-Given: 4
-Receive: 31


View Profile WWW
« on: August 04, 2007, 01:37:28 PM »

nach mehreren offenen treads habe ich selber versucht, in einer frischen 4images installation
kommentare mit umlauten zu erstellen.

----------------------------------------------------------------------------------------------------------------------

ich benutze als testversion / testsystem
PHP Version 5.2.2 und Mysql 5.0.41

4images 1.7.4

Quelltext im Browser:
<title>4images - Image Gallery Management System</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" href="./templates/default/style.css" />


----------------------------------------------------------------------------------------------------------------------

folgende fehlermeldung kommt (siehe bild vorher.gif):
Das Feld Überschrift muss ausgefüllt werden!
Das Feld Kommentar muss ausgefüllt werden!

wenn die umlaute durch ae ue oe ersetzt werden, funktioniert dies (siehe bilder nachher.gif)

liebe programmierer, meldet euch  Wink
damit die sache entgültig gelöst wird Exclamation


UPDATE 28.08.2007
LÖSUNG/BUGFIX


suche/search in global.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
function clean_array($array) {
  $search = array(
    // Remove any attribute starting with "on" or xmlns
    '#(<[^>]+[\x00-\x20\"\'])(on|xmlns)[^>]*>#iUu',
    // Remove javascript: and vbscript: protocol
    '#([a-z]*)[\x00-\x20]*=[\x00-\x20]*([\`\'\"]*)[\\x00-\x20]*j[\x00-\x20]*a[\x00-\x20]*v[\x00-\x20]*a[\x00-\x20]*s[\x00-\x20]*c[\x00-\x20]*r[\x00-\x20]*i[\x00-\x20]*p[\x00-\x20]*t[\x00-\x20]*:#iUu',
    '#([a-z]*)[\x00-\x20]*=([\'\"]*)[\x00-\x20]*v[\x00-\x20]*b[\x00-\x20]*s[\x00-\x20]*c[\x00-\x20]*r[\x00-\x20]*i[\x00-\x20]*p[\x00-\x20]*t[\x00-\x20]*:#iUu',
    //<span style="width: expression(alert('Ping!'));"></span>
    // Only works in ie...
    '#(<[^>]+)style[\x00-\x20]*=[\x00-\x20]*([\`\'\"]*).*expression[\x00-\x20]*\([^>]*>#iU',
    '#(<[^>]+)style[\x00-\x20]*=[\x00-\x20]*([\`\'\"]*).*behaviour[\x00-\x20]*\([^>]*>#iU',
    '#(<[^>]+)style[\x00-\x20]*=[\x00-\x20]*([\`\'\"]*).*s[\x00-\x20]*c[\x00-\x20]*r[\x00-\x20]*i[\x00-\x20]*p[\x00-\x20]*t[\x00-\x20]*:*[^>]*>#iUu'
  );

  $replace = array(
    "$1>",
    '$1=$2nojavascript...',
    '$1=$2novbscript...',
    "$1>",
    "$1>",
    "$1>"
  );

  // Remove all control (i.e. with ASCII value lower than 0x20 (space),
  // except of 0x0A (line feed) and 0x09 (tabulator)
  $search2 =
      "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x0B\x0C\x0E\x0F\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1A\x1B\x1C\x1D\x1E\x1F";
  $replace2 = //str_repeat("\r", strlen($search2));
      "\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D";

  foreach ($array as $key => $val) {
    if (is_array($val)) {
      $val = clean_array($val);
    } else {
      $val = preg_replace($search, $replace, $val);

      $val = str_replace("\r\n", "\n", $val);
      $val = str_replace("\r",   "\n", $val);
      $val = strtr($val, $search2, $replace2);
      $val = str_replace("\r", '', $val);  // \r === \x0D

      do {
        $oldval = $val;
        $val = preg_replace('#</*(applet|meta|xml|blink|link|style|script|embed|object|iframe|frame|frameset|ilayer|layer|bgsound|title|base)[^>]*>#i', "", $val);
      } while ($oldval != $val);
    }

    $array[$key] = $val;
  }

  return $array;
}

ersetze/replace
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
function clean_string($string) {
  $canCheckUTF8Error = defined('PREG_BAD_UTF8_ERROR') && function_exists('preg_last_error');

  // Remove any attribute starting with "on" or xmlns
  $tmp = preg_replace('#(<[^>]+[\x00-\x20\"\'])(on|xmlns)[^>]*>#iUu',"$1>",$string);
  if ($canCheckUTF8Error && (PREG_BAD_UTF8_ERROR == preg_last_error())) {
      $tmp = preg_replace('#(<[^>]+[\x00-\x20\"\'])(on|xmlns)[^>]*>#iU',"$1>",$string);
  }
  $string = $tmp;

  // Remove javascript: and vbscript: protocol
  $tmp = preg_replace('#([a-z]*)[\x00-\x20]*=[\x00-\x20]*([\`\'\"]*)[\x00-\x20]*j[\x00-\x20]*a[\x00-\x20]*v[\x00-\x20]*a[\x00-\x20]*s[\x00-\x20]*c[\x00-\x20]*r[\x00-\x20]*i[\x00-\x20]*p[\x00-\x20]*t[\x00-\x20]*:#iUu','$1=$2nojavascript...',$string);
  if ($canCheckUTF8Error && (PREG_BAD_UTF8_ERROR == preg_last_error())) {
      $tmp = preg_replace('#([a-z]*)[\x00-\x20]*=[\x00-\x20]*([\`\'\"]*)[\x00-\x20]*j[\x00-\x20]*a[\x00-\x20]*v[\x00-\x20]*a[\x00-\x20]*s[\x00-\x20]*c[\x00-\x20]*r[\x00-\x20]*i[\x00-\x20]*p[\x00-\x20]*t[\x00-\x20]*:#iU','$1=$2nojavascript...',$string);
  }
  $string = $tmp;
  $tmp = preg_replace('#([a-z]*)[\x00-\x20]*=[\x00-\x20]*([\`\'\"]*)[\x00-\x20]*v[\x00-\x20]*b[\x00-\x20]*s[\x00-\x20]*c[\x00-\x20]*r[\x00-\x20]*i[\x00-\x20]*p[\x00-\x20]*t[\x00-\x20]*:#iUu','$1=$2novbscript...',$string);
  if ($canCheckUTF8Error && (PREG_BAD_UTF8_ERROR == preg_last_error())) {
      $tmp = preg_replace('#([a-z]*)[\x00-\x20]*=[\x00-\x20]*([\`\'\"]*)[\x00-\x20]*v[\x00-\x20]*b[\x00-\x20]*s[\x00-\x20]*c[\x00-\x20]*r[\x00-\x20]*i[\x00-\x20]*p[\x00-\x20]*t[\x00-\x20]*:#iU','$1=$2novbscript...',$string);
  }
  $string = $tmp;

  // <span style="width: expression(alert('Ping!'));"></span>
  // only works in ie...
  $string = preg_replace('#(<[^>]+)style[\x00-\x20]*=[\x00-\x20]*([\`\'\"]*).*expression[\x00-\x20]*\([^>]*>#iU',"$1>",$string);
  $string = preg_replace('#(<[^>]+)style[\x00-\x20]*=[\x00-\x20]*([\`\'\"]*).*behaviour[\x00-\x20]*\([^>]*>#iU',"$1>",$string);
  $tmp = preg_replace('#(<[^>]+)style[\x00-\x20]*=[\x00-\x20]*([\`\'\"]*).*s[\x00-\x20]*c[\x00-\x20]*r[\x00-\x20]*i[\x00-\x20]*p[\x00-\x20]*t[\x00-\x20]*:*[^>]*>#iUu',"$1>",$string);
  if ($canCheckUTF8Error && (PREG_BAD_UTF8_ERROR == preg_last_error())) {
      $tmp = preg_replace('#(<[^>]+)style[\x00-\x20]*=[\x00-\x20]*([\`\'\"]*).*s[\x00-\x20]*c[\x00-\x20]*r[\x00-\x20]*i[\x00-\x20]*p[\x00-\x20]*t[\x00-\x20]*:*[^>]*>#iU',"$1>",$string);
  }
  $string = $tmp;

  // Remove namespaced elements (we do not need them...)
  $string = preg_replace('#</*\w+:\w[^>]*>#i',"",$string);

  // Remove all control (i.e. with ASCII value lower than 0x20 (space),
  // except of 0x0A (line feed) and 0x09 (tabulator)
  $search =
    "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x0B\x0C\x0E\x0F\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1A\x1B\x1C\x1D\x1E\x1F";
  $replace = //str_repeat("\r", strlen($search2));
    "\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D\x0D";

  $string = str_replace("\r\n", "\n", $string);
  $string = str_replace("\r",   "\n", $string);
  $string = strtr($string, $search, $replace);
  $string = str_replace("\r", '', $string);  // \r === \x0D

  // Remove really unwanted tags
  do {
    $oldstring = $string;
    $string = preg_replace('#</*(applet|meta|xml|blink|link|style|script|embed|object|iframe|frame|frameset|ilayer|layer|bgsound|title|base)[^>]*>#i',"",$string);
  } while ($oldstring != $string);

  return $string;
}

function clean_array($array) {
  foreach ($array as $key => $val) {
    $key = clean_string($key);

    if (is_array($val)) {
      $val = clean_array($val);
    } else {
      $val = clean_string($val);
    }

    $array[$key] = $val;
  }

  return $array;
}

* vorher.gif (33.03 KB - downloaded 1105 times.)
* nachher.gif (32.26 KB - downloaded 999 times.)
* php_ini.gif (21.26 KB - downloaded 966 times.)
« Last Edit: July 06, 2008, 09:51:07 PM by ivan » Logged

greetings / grüsse
ivan

Facebook Fan Page | Follow Twitter

Blog: Reisen Blog
Bilder Gallery: Bilder Gallery
mawenzi
4images Moderator
4images Guru
*****
Offline Offline

Posts: 4500

Thank You
-Given: 36
-Receive: 121


View Profile
« Reply #1 on: August 04, 2007, 02:27:01 PM »

... habe Jan und Kai nochmals auf dieses Problem hingewiesen ...
Logged

Your first three "must do" before you ask a question ! ( © by V@no )
- please read the Forum Rules ...
- please study the FAQ ...
- please try to Search for your answer ...

You are on search for top 4images MOD's ?
- then please search here ... Mawenzi's Top 100+ MOD List (unsorted sorted) ...
ivan
4images Moderator
4images Guru
*****
Offline Offline

Posts: 2279

Thank You
-Given: 4
-Receive: 31


View Profile WWW
« Reply #2 on: August 04, 2007, 04:47:29 PM »

hallo mawenzi,
danke...

als anhang noch die datenbank struktur mit kollation latin1_general_ci
datenbank ist also auch richtig eingestellt.

ich hoffe dass schnell ein fix kommt und NICHT auf die nächste 4images gewartet
werden muss!

gruss und danke

* mysql.gif (53.01 KB - downloaded 887 times.)
Logged

greetings / grüsse
ivan

Facebook Fan Page | Follow Twitter

Blog: Reisen Blog
Bilder Gallery: Bilder Gallery
ivan
4images Moderator
4images Guru
*****
Offline Offline

Posts: 2279

Thank You
-Given: 4
-Receive: 31


View Profile WWW
« Reply #3 on: August 09, 2007, 12:10:11 PM »

ich habe mal ein bisschen recherchiert und habe auch noch dies gefunden
http://www.4homepages.de/forum/index.php?topic=18331.msg97935#msg97935

scheinbar ist es ein problem mit php 5

diese variable $HTTP_POST_VARS gibt da nicht mehr sondern wird durch diese variable $HTTP_POST ersetzt
ich weiss aber nicht, ob man in der function.php image_name etc. dies einfach so ersetzen 1:1 kann.

mit php 4 hatte ich keine probleme kommentare zu schreiben

scheinbar beinflusst das ganze auch noch die variable register_globals_off.

hier ein auszug bei php.net
Ab PHP 4.2.0 ist der standardmäßige Wert für die PHP-Anweisung register_globals  off. Dies ist eine wesentliche Änderung in PHP. Die Anweisung register_globals off  beeinflusst den Satz von vordefinierten Variablen, die im globalen Bereich verfügbar sind. Um zum Beispiel DOCUMENT_ROOT zu bekommen, müssen Sie $_SERVER['DOCUMENT_ROOT'] statt $DOCUMENT_ROOT verwenden oder um $id von der URL http://www.example.com/test.php?id=3 zu bekommen $_GET['id'] statt $id oder $_ENV['HOME']  statt $HOME.

$_POST
Variablen, die dem Skript über HTTP POST geliefert werden. Entspricht dem alten $HTTP_POST_VARS-Array, das zwar noch zur Verfügung steht, aber abzulehnen ist.

------------------------------------------------------------------------------------------------------------------------------------
es wäre schön, wenn sich die macher/entwickler dazu äussern würden.
man weiss ja nicht genau, wann die neue version kommen wird... also sollte man den anwendern schon
ein fix/update bieten... so ist 4images jedenfalls nicht brauchbar!


gruss ivan
Logged

greetings / grüsse
ivan

Facebook Fan Page | Follow Twitter

Blog: Reisen Blog
Bilder Gallery: Bilder Gallery
Jan
Administrator
4images Guru
*****
Offline Offline

Posts: 5024

Thank You
-Given: 0
-Receive: 31


View Profile WWW
« Reply #4 on: August 09, 2007, 01:49:50 PM »

Das wurde schon vor ziemlich langer Zeit gefixt (ziemlich am Anfang der global.php).

Jan
Logged

Your first three "must do" before you ask a question:
1. Forum rules
2. FAQ
3. Search
ivan
4images Moderator
4images Guru
*****
Offline Offline

Posts: 2279

Thank You
-Given: 4
-Receive: 31


View Profile WWW
« Reply #5 on: August 09, 2007, 02:00:35 PM »

hallo kai,
wieso sind dann immer noch alte werte in der function drin, okay habe es gesehen dass die variabeln in der global ausgetauscht werden.?
es haben sich mehrere mitglieder beschwert.... komisch ist dies schon.

wie du oben sehen kannst, habe ich das ganze selbst ausprobiert mit php 5
und es hat bei mir NICHT funktioniert!

... es war ein aktueller download (4images 1.7.4)

gruss
« Last Edit: August 10, 2007, 08:16:32 AM by ivan » Logged

greetings / grüsse
ivan

Facebook Fan Page | Follow Twitter

Blog: Reisen Blog
Bilder Gallery: Bilder Gallery
ivan
4images Moderator
4images Guru
*****
Offline Offline

Posts: 2279

Thank You
-Given: 4
-Receive: 31


View Profile WWW
« Reply #6 on: August 10, 2007, 08:16:15 AM »

hai kai,
konntest du das ganze selbst mal ausprobieren?

gruss
Logged

greetings / grüsse
ivan

Facebook Fan Page | Follow Twitter

Blog: Reisen Blog
Bilder Gallery: Bilder Gallery
Jan
Administrator
4images Guru
*****
Offline Offline

Posts: 5024

Thank You
-Given: 0
-Receive: 31


View Profile WWW
« Reply #7 on: August 14, 2007, 10:19:30 AM »

Hi,

wir sind leider hier im Büro seit 1 Woche offline  Neutral
Ich werde mich sobald es geht darum kümmern..

Jan
Logged

Your first three "must do" before you ask a question:
1. Forum rules
2. FAQ
3. Search
ivan
4images Moderator
4images Guru
*****
Offline Offline

Posts: 2279

Thank You
-Given: 4
-Receive: 31


View Profile WWW
« Reply #8 on: August 14, 2007, 12:42:58 PM »

hi jan,
ja das wäre super wenn ihr diesen tread und diese

Bug 1.7.4 Lightbox Download-Zip Anzeige
http://www.4homepages.de/forum/index.php?topic=18022.0

Bug 1.7.4 mit Umlauten in Bilder / Mitglieder > Kategorien Upload
http://www.4homepages.de/forum/index.php?topic=18267.0

Seit 1.7.1 Probleme bei grossen Download Dateien > 15MB
http://www.4homepages.de/forum/index.php?topic=16830.0
http://www.4homepages.de/forum/index.php?topic=4634.0
http://www.4homepages.de/forum/index.php?topic=17191.0
http://www.4homepages.de/forum/index.php?topic=8736.0

mal abarbeiten und uns einen patch geben könntet.
(bis dann die entgültige 1.7.x version kommt)

gruss ivan

Logged

greetings / grüsse
ivan

Facebook Fan Page | Follow Twitter

Blog: Reisen Blog
Bilder Gallery: Bilder Gallery
Nicky
Administrator
4images Guru
*****
Offline Offline

Posts: 3195

Thank You
-Given: 26
-Receive: 57


View Profile
« Reply #9 on: August 14, 2007, 02:00:14 PM »

auf meinem server laufen...

PHP Version 4.3.11
und
MySQL 5.0.22 (datenbank als utf8_general_ci)

an 4images 1.7.4 wurde nichts verändert.

das ist das ergebniss
http://www.nicky.net/4test/details.php?image_id=1
Logged

cheers
Nicky
Your first three "must do" before you ask a question ! (© by V@no)
- please read the Forum Rules ...
- please study the FAQ ...
- please try to Search for your answer ...

nicky.net 4 4images
Signature stolen from mawenzi
mawenzi
4images Moderator
4images Guru
*****
Offline Offline

Posts: 4500

Thank You
-Given: 36
-Receive: 121


View Profile
« Reply #10 on: August 14, 2007, 02:34:44 PM »

@Nicky
... du bist ja ein Sprachgenie ...  Mr. Green
... ich denke aber es dreht sich vorrangig um PHP Version 5.x.x ...
Logged

Your first three "must do" before you ask a question ! ( © by V@no )
- please read the Forum Rules ...
- please study the FAQ ...
- please try to Search for your answer ...

You are on search for top 4images MOD's ?
- then please search here ... Mawenzi's Top 100+ MOD List (unsorted sorted) ...
Nicky
Administrator
4images Guru
*****
Offline Offline

Posts: 3195

Thank You
-Given: 26
-Receive: 57


View Profile
« Reply #11 on: August 14, 2007, 02:43:51 PM »

LOOOOOOOOOL..

ich sollte echt mal die postings komplett lesen.. hab ja nur "5"-er gelesen und dachte auf mysql 5...
damit war mein post überflüssig.

sorry leutz...
Logged

cheers
Nicky
Your first three "must do" before you ask a question ! (© by V@no)
- please read the Forum Rules ...
- please study the FAQ ...
- please try to Search for your answer ...

nicky.net 4 4images
Signature stolen from mawenzi
ivan
4images Moderator
4images Guru
*****
Offline Offline

Posts: 2279

Thank You
-Given: 4
-Receive: 31


View Profile WWW
« Reply #12 on: August 14, 2007, 03:45:56 PM »

genau so ist es, es handelt sich um die php version 5.x.x in der das (oder die) probleme
auftreten! Wink

gruss ivan
Logged

greetings / grüsse
ivan

Facebook Fan Page | Follow Twitter

Blog: Reisen Blog
Bilder Gallery: Bilder Gallery
Nicky
Administrator
4images Guru
*****
Offline Offline

Posts: 3195

Thank You
-Given: 26
-Receive: 57


View Profile
« Reply #13 on: August 14, 2007, 04:30:07 PM »

wieder ich
guckst du... (kann am server zwischen PHP4 und PHP5 wechseln)

PHP Version 5.1.1
MySQL 5.0.22 (datenbank als utf8_general_ci)

http://www.nicky.net/4test/details.php?image_id=1
user: test
pass: test
« Last Edit: August 15, 2007, 02:31:29 AM by Nicky » Logged

cheers
Nicky
Your first three "must do" before you ask a question ! (© by V@no)
- please read the Forum Rules ...
- please study the FAQ ...
- please try to Search for your answer ...

nicky.net 4 4images
Signature stolen from mawenzi
ivan
4images Moderator
4images Guru
*****
Offline Offline

Posts: 2279

Thank You
-Given: 4
-Receive: 31


View Profile WWW
« Reply #14 on: August 14, 2007, 06:05:32 PM »

man muss mit dem gleichen wasser kochen

register_globals
Ab PHP 4.2.0 wurde die Option aus Sicherheitsgründen standardmäßig deaktiviert. In diesem Fall kann auf die entsprechenden Werte nur über die superglobalen Arrays zugegriffen werden. In PHP 6 soll die Option abgeschafft werden

hier der link: http://www.phpbar.de/w/Register_globals

diese funktion ist standardmässig ab 4.2 deaktiviert und ich denke 4images sollte sich rüsten, damit
dies auch ohne (register_globals auf on) läuft.

siehe bei dir in der konfig datei!


* 2007-08-14_180220.gif (26.31 KB - downloaded 787 times.)
Logged

greetings / grüsse
ivan

Facebook Fan Page | Follow Twitter

Blog: Reisen Blog
Bilder Gallery: Bilder Gallery
Pages: [1] 2 3 4 » »» Print 
« previous next »
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF | SMF © 2015, Simple Machines Valid XHTML 1.0! Valid CSS!
Page created in 0.086 seconds with 19 queries.
Post your comments here