Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Verhunzte Umlaute durch HTML Entities

    hstreicher

    • Fördermitglied
    • Beiträge: 281
    Verhunzte Umlaute durch HTML Entities
    am: 10. Februar 2012, 14:47:59
    Hallo Alle

    mit dem Upgrade von 1.04 auf 1.05 wurde in

    includes/classes/product.php

    function build_data_array ein htmlentities eingebaut

    wenn jetzt die Umlaute schon als HTML Entities in der Datenbank sind werden die führenden & verhtmlisiert   und es gibt dann so schönes Output wie:

    Zitat
    Größen

    das gehört imho durch ein html_entities_decode entschärft

    ca Zeile 415:

    Code: PHP  [Auswählen]
                    return array ('PRODUCTS_NAME' => htmlentities( html_entity_decode($array['products_name'],ENT_QUOTES ),ENT_QUOTES),

    mfg hannes

    Linkback: https://www.modified-shop.org/forum/index.php?topic=18138.0

    derJan

    • Mitglied
    • Beiträge: 120
    • Geschlecht:
    Re: Verhunzte Umlaute durch HTML Entities
    Antwort #1 am: 18. Juni 2012, 00:56:59
    Hallo hstreicher,

    so langsam werde ich auch ungeduldig und verzweifele schon fast, da in meinem neu aufzubauenden modified eCommerce Shopsoftware Shop die Umlaute als kleines "Quadrat" angezeigt werden (http://newshop.haubendesign.de) und ich noch nicht einmal den Ansatz einer Lösung hier im Forum finden kann!
    Das kann aber auch gut daran liegen, weil ich nicht verstehe, wo das Problem zwischen der DB und der Ausgabe im Shop liegt!

    Nun hoffe ich darauf, dass Deine Beitrag mein Problem lösen könnte ...
    Ich habe zusätzlich mal zwei Screenshots angehägt, auf denen man sehen kann, wie z.B. die Kategoriebeschreibung in der DB dargestellt wird (Ein Scrrenshot aus phpMyAdmin und einer aus MySQLDumper).

    Kannst Du mir sagen, wo genau der Code schnipsel eingefügt werden muss?

    Meine "product.php" (product.txt) ist im Anhang

    Vielen Dank und Grüße

    der Jan

    Modulfux

    • Experte
    • Beiträge: 3.590
    • Geschlecht:
    Re: Verhunzte Umlaute durch HTML Entities
    Antwort #2 am: 18. Juni 2012, 01:01:53
    /includes/classes/product.php

    Suche:
    Code: PHP  [Auswählen]
    $productData = array (
      'PRODUCTS_NAME' => $array['products_name'],
     

    Ersetze mit:
    Code: PHP  [Auswählen]
    $productData = array (
      'PRODUCTS_NAME' => htmlentities( html_entity_decode($array['products_name'],ENT_QUOTES ),ENT_QUOTES),
     

    Gruß
    Ronny

    web28

    • modified Team
    • Beiträge: 9.404
    Re: Verhunzte Umlaute durch HTML Entities
    Antwort #3 am: 18. Juni 2012, 08:13:48
    Zitat
    mit dem Upgrade von 1.04 auf 1.05 wurde in

    includes/classes/product.php

    function build_data_array ein htmlentities eingebaut

    Habe das mal gescheckt, also ich sehe kein htmlentities in Code :-?

    Gruss Web28

    schroedie

    • Neu im Forum
    • Beiträge: 27
    • Geschlecht:
    Re: Verhunzte Umlaute durch HTML Entities
    Antwort #4 am: 18. Juni 2012, 10:56:52
    Ich hatte bis eben auch das Problem, jedoch ohne das Update installiert zu haben. Von einem auf den anderen Tag waren auch bei meiner Seite die Umlaute verunstaltet.
    Nach Rücksprache mit meinem Provider liegt es an unterschiedlichen Zeichensatz Einstellungen zwischen Webserver und MySQL Datenbank.
    Hier der Lösungsansatz von meinem Provider:

    "Bitte ändern Sie dazu in der Datei:

    inc/xtc_db_connect.inc.php

    die Zeile

    if ($$link) mysql_select_db($database);

    in

    if ($$link) { mysql_select_db($database); mysql_query("SET NAMES 'latin1'"); }

    In der Regel finden Sie dieses in der Zeile 41 der Datei. Sollten Sie auf dem MySql-Server einen anderen Zeichensatz als latin1 eingestellt haben, passen Sie bitte den Teil 'latin1' entsprechend dem gewählten Zeichensatz auf dem MySql-Server an."

    Hat bei mir funktioniert.

    derJan

    • Mitglied
    • Beiträge: 120
    • Geschlecht:
    Re: Verhunzte Umlaute durch HTML Entities
    Antwort #5 am: 18. Juni 2012, 19:28:39
    Hallo , hallo,

    @Rony
    Vielen Dank für die Erläuterung, doch leider bringt es keinen Erfolg. Die Umlaute werden (auch nach leerung des Cache) mit einem kleinen Quadrat dargestellt.

    @schroedie

    Danke auch für Deinen Lösungsansatz, doch da kann ich noch nicht so richtig tätig werden, da meine "xtc_db_connect.inc.php" so aussieht und die von Dir beschriebene Zeile auskommentiert ist (Zeile 36). Wenn ich diese einfach nur austauschen würde, würde das keine Veränderung bringen:

    Code: PHP  [Auswählen]
    <?php
    /* -----------------------------------------------------------------------------------------
       $Id: xtc_db_connect.inc.php 1248 2005-09-27 10:27:23Z gwinger $  

       XT-Commerce - community made shopping
       http://www.(( Wir dulden keine kommerziellen Werbelinks - Bitte Forenregeln beachten! ))

       Copyright (c) 2003 XT-Commerce
       -----------------------------------------------------------------------------------------
       based on:
       (c) 2000-2001 The Exchange Project  (earlier name of osCommerce)
       (c) 2002-2003 osCommerce(database.php,v 1.19 2003/03/22); www.oscommerce.com
       (c) 2003      nextcommerce (xtc_db_connect.inc.php,v 1.3 2003/08/13); www.nextcommerce.org

       Released under the GNU General Public License
       ---------------------------------------------------------------------------------------*/

     //  include(DIR_WS_CLASSES.'/adodb/adodb.inc.php');
      function xtc_db_connect($server = DB_SERVER, $username = DB_SERVER_USERNAME, $password = DB_SERVER_PASSWORD, $database = DB_DATABASE, $link = 'db_link') {
        global $$link;

        if (USE_PCONNECT == 'true') {
            $$link = mysql_pconnect($server, $username, $password);
        } else {
            $$link = mysql_connect($server, $username, $password);
        }

    // BOF - Dokuman - 2009-09-02 - Disable "STRICT" mode for MySQL 5!
        $vers = @mysql_get_server_info();
    // BOF - vr - 2010-01-01 - Disable "STRICT" mode for MySQL 5!
    //    if(substr($vers,0,1) > 4) @mysql_query("SET SESSION sql_mode='MYSQL40'");
        if(substr($vers, 0, 1) > 4) @mysql_query("SET SESSION sql_mode=''");
    // EOF - vr - 2010-01-01 - Disable "STRICT" mode for MySQL 5!
    // EOF - Dokuman - 2009-09-02 - Disable "STRICT" mode for MySQL 5!

    // BOF - Dokuman - 2009-05-27 - revised database connection
    //    if ($$link) mysql_select_db($database);
            if ($$link) {
                    @mysql_select_db($database) or die('Database not available');
            }
    // EOF - Dokuman - 2009-05-27 - revised database connection

        return $$link;
      }
    ?>

    Was gäbe es noch für Möglichkeiten?
    Es kann doch nicht sein, dass ein Datenbank Export und Import von zwei fast gleichen XT-Shops (von xtcommerce zu modified eCommerce Shopsoftware) solche Probleme macht.

    Danke und Grüße

    der Jan

    Traumkunst

    • Fördermitglied
    • Beiträge: 42
    • Geschlecht:
    Re: Verhunzte Umlaute durch HTML Entities
    Antwort #6 am: 16. November 2012, 18:04:00
    @schroedie: Danke, ich hatte gerade das gleiche Problem, und diese Lösung scheint zu funktionieren.

    Aus

    Code: PHP  [Auswählen]
            if ($$link) {
                    @mysql_select_db($database) or die('Database not available');
            }

    mach

    Code: PHP  [Auswählen]
            if ($$link) {
                    @mysql_select_db($database) or die('Database not available');
                    @mysql_query("SET NAMES 'latin1'");
            }
    Trade Republic - Provisionsfrei Aktien handeln
    1 Antworten
    2777 Aufrufe
    24. Januar 2016, 11:58:04 von udoersam
    7 Antworten
    4185 Aufrufe
    29. April 2010, 14:26:41 von R.Mansveld
               
    anything