Merkwürdige "Zeichen" im Firefox + IE

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Merkwürdige "Zeichen" im Firefox + IE

    Hi!

    Im Anhang seht ihr, dass der Eintrag im <title>...</title> vor der Überschrift "Login" noch 2 komische Kästchen ausspuckt. Mir ist schleierhaft, wo die herkommen. Hier mal der relevante Code:

    PHP-Code:
    session_start();

    include ("functions.php");

    //...

    <?xml version="1.0" ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title><?php echo textholen('NULL''12025'$flagid); ?></title>
    ...
    Ich verwende PHP 5, MSSQL und Stored Procedures zur Datenausgabe. Im Firefox wird teilweise auch 2 Fragezeichen (je nach Version), statt den Kästchen angezeigt!

    Die aufgerufene Funktion gibt lediglich einen Text aus der Datenbank zurück:

    PHP-Code:
    //...
    $s_rueckgaben $textAusgabenMulti['Text']; 
    //...
    return $s_rueckgaben
    Der Text in der MSSQL DB steht in einer Spalte mit der Eigenschaften nvarchar(max), Nicht Null !

    Wie kommt es zu diesen Zeichen? Anbei: die PHP Files sind in UTF-8 konvertiert (zwecks mehrsprachigkeit)!

    Danke schon mal.

    mfg streuner
    Angehängte Dateien
    Zuletzt geändert von streuner; 10.12.2009, 16:53.
    Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert,
    der letzte Netzknoten verkommerzialisert ist, werdet Ihr merken, dass Geld nicht von alleine programmiert.

    "Diese Software verdient die 3 großen GGG: --- Gesehen --- Gelacht --- Gelöscht ---"

  • #2
    Hallo,

    dann lass dir doch einfach mal den Rückgabewert von textholen in hex anzeigen:

    PHP-Code:
    $hex = array();
    for (
    $i 0$i strlen($text); $i++) {
        
    $hex[] = str_pad(dechex(ord($text[$i])), 20STR_PAD_LEFT);
    }
    echo(
    implode(" "$hex)); 
    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      @Amica: Bekomme "Login4c 6f 67 69 6e " raus, wenn ich das mit deinem Code ausgeben lasse.

      @Peacie: Was meinst du genau mit "SET NAMES utf8 ?"? Für die MSSQL DB, oder wofür?

      mfg streuner
      Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert,
      der letzte Netzknoten verkommerzialisert ist, werdet Ihr merken, dass Geld nicht von alleine programmiert.

      "Diese Software verdient die 3 großen GGG: --- Gesehen --- Gelacht --- Gelöscht ---"

      Kommentar


      • #4
        Zitat von streuner Beitrag anzeigen
        @Amica: Bekomme "Login4c 6f 67 69 6e " raus, wenn ich das mit deinem Code ausgeben lasse.
        Komisch. Kannst du die Seite mit dem Fehler mal lokal speichern und dir in einem Hex-Editor ansehen? Da muss ja noch irgendwas vor dem Wort "Login" stehen.

        Du kannst auch mal versuchen, die Zeile (von <title> bis </title>) komplett zu löschen und neu einzutippen (nicht kopieren). Vielleicht hast du schon im Script irgendwelche komischen (nicht angezeigten) Zeichen drin, z. B. ein versehentlich kopiertes BOM oder so.
        Zuletzt geändert von AmicaNoctis; 11.12.2009, 08:24.
        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
        Super, danke!
        [/COLOR]

        Kommentar


        • #5
          @Peacie: MSSQL, nicht MySQL!

          @Amica: Der Quellcode im Browser sieht folgendermaßen aus, wenn ich Ihne mir ausgeben lasse:

          PHP-Code:
          <?xml version="1.0" ?>
          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
          <html xmlns="http://www.w3.org/1999/xhtml">
          <head>
          <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
          <title>Login</title>
          Da steht auch nichts davor! Eintippen hab ich versucht, ändert nichts. Schau mir das jetzt nochmal mit nem Hex Editor an. Kleinen Moment.

          mfg streuner
          Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert,
          der letzte Netzknoten verkommerzialisert ist, werdet Ihr merken, dass Geld nicht von alleine programmiert.

          "Diese Software verdient die 3 großen GGG: --- Gesehen --- Gelacht --- Gelöscht ---"

          Kommentar


          • #6
            So, folgendes steht im Hex Editor, an der betreffenden Zeile:

            0D0A3C7469746C653EEFBBBFEFBBBF4C6F67696E3C2F7469
            746C653E0D0A3C

            siehe angehängte Grafik.

            mfg streuner
            Angehängte Dateien
            Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert,
            der letzte Netzknoten verkommerzialisert ist, werdet Ihr merken, dass Geld nicht von alleine programmiert.

            "Diese Software verdient die 3 großen GGG: --- Gesehen --- Gelacht --- Gelöscht ---"

            Kommentar


            • #7
              das sind ja gleich 2 UTF-8-BOMs Also wie gesagt: löschen und neu eintippen.

              Edit: Du sagst, du hättest das schon gemacht? Dann kommt es doch aus der Funktion, aber da hast du ja den Hexcode gepostet und da war es nicht drin. Es muss direkt im Script sein, gleich nach <title>. Du kannst ja das Script selbst auch mal im Hexeditor ansehen.
              Zuletzt geändert von AmicaNoctis; 11.12.2009, 09:03.
              [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
              Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
              Super, danke!
              [/COLOR]

              Kommentar


              • #8
                Zitat von AmicaNoctis Beitrag anzeigen
                das sind ja gleich 2 UTF-8-BOMs
                Also wie gesagt: löschen und neu eintippen.
                Hm...entweder verstehe ich Dich falsch, oder es funktioniert einfach nicht!
                Ich lösche die Title Zeile und tippe den Code nochmal neu ein*grübel*!
                Ergebnis ist dasselbe. Hm, wieso sind das 2 UTF-8 BOMs? Also die *.php Files
                sind alle nach UTF-8 mit Notepad++ konvertiert.


                Zitat von AmicaNoctis Beitrag anzeigen
                Edit: Du sagst, du hättest das schon gemacht?
                Dann kommt es doch aus der Funktion, aber da hast du ja den Hexcode gepostet
                und da war es nicht drin. Es muss direkt im Script sein, gleich nach <title>.
                Du kannst ja das Script selbst auch mal im Hexeditor ansehen.
                Ja, komisch. Hatte irgendwie noch den Verdacht, dass über die Feldeigenschaften
                der DB, es zu solchen Problemen kommt!

                mfg streuner

                P.S. Sehe gerade, dass ich anscheinend zuviele Zeichen je Zeile habe. Wirklich nettes
                Skript, aber ist aber auch etwas umständlich, wenn man die Zeichen nicht angezeigt
                bekommt, genau unter 100 zu bleiben:-)!
                Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert,
                der letzte Netzknoten verkommerzialisert ist, werdet Ihr merken, dass Geld nicht von alleine programmiert.

                "Diese Software verdient die 3 großen GGG: --- Gesehen --- Gelacht --- Gelöscht ---"

                Kommentar


                • #9
                  Besser du nutzt in Notepad++ "ANSI as UTF-8" / "UTF-8 ohne BOM". Was sagt der Hexeditor zu dem Script? Kannst du das nochmal bitte so toll posten, nur diesmal halt nicht die Seite die rauskommt, sondern das Script?
                  [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                  Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                  Super, danke!
                  [/COLOR]

                  Kommentar


                  • #10
                    Siehe angehängt Grafik. Ok, "ANSI as UTF-8" probiere ich gleich nochmal aus, danke.

                    mfg streuner

                    P.S. Bezieht sich dein "@streuner: Bitte Code..." auf meinen ersten Beitrag noch? Wenn ja, nur auf den geposteten Quellcode, oder auch z.B. auf meine Signatur?
                    Angehängte Dateien
                    Zuletzt geändert von streuner; 11.12.2009, 09:36.
                    Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert,
                    der letzte Netzknoten verkommerzialisert ist, werdet Ihr merken, dass Geld nicht von alleine programmiert.

                    "Diese Software verdient die 3 großen GGG: --- Gesehen --- Gelacht --- Gelöscht ---"

                    Kommentar


                    • #11
                      Also kommt es doch aus der Funktion textholen. Evtl. auch direkt aus der DB. Ich will dir nichts unterstellen, aber mit dem Hex-Schnipsel hättest du dann eigentlich "ef bb bf ef bb bf 4c 6f 67 69 6e" bekommen müssen. Keine Ahnung.

                      Edit:
                      Zitat von streuner Beitrag anzeigen
                      P.S. Bezieht sich dein "@streuner: Bitte Code..." auf meinen ersten Beitrag noch? Wenn ja, nur auf den geposteten Quellcode, oder auch z.B. auf meine Signatur?
                      Die bezieht sich immer nur auf Codeabschnitte (also nicht auf deine Signatur). Um welche Beiträge es sich konkret handelt, bekommst du (außer im IE) mit Rechsklick->Grafik anzeigen raus.
                      Zuletzt geändert von AmicaNoctis; 11.12.2009, 09:40.
                      [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                      Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                      Super, danke!
                      [/COLOR]

                      Kommentar


                      • #12
                        Zitat von AmicaNoctis Beitrag anzeigen
                        Also kommt es doch aus der Funktion textholen. Evtl. auch direkt aus der DB. Ich will dir nichts unterstellen, aber mit dem Hex-Schnipsel hättest du dann eigentlich "ef bb bf ef bb bf 4c 6f 67 69 6e" bekommen müssen. Keine Ahnung.
                        Ok, gut. Das ist ein Ansatz, wo ich dann nochmal nachschauen muss. Warum und was genau aus der DB kommt, muss ich nochmal genauer schauen. Danke, hast mir sehr geholfen!

                        Edit:


                        Zitat von AmicaNoctis Beitrag anzeigen
                        Die bezieht sich immer nur auf Codeabschnitte (also nicht auf deine Signatur). Um welche Beiträge es sich konkret handelt, bekommst du (außer im IE) mit Rechsklick->Grafik anzeigen raus.
                        Ok, thanx.

                        mfg streuner
                        Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert,
                        der letzte Netzknoten verkommerzialisert ist, werdet Ihr merken, dass Geld nicht von alleine programmiert.

                        "Diese Software verdient die 3 großen GGG: --- Gesehen --- Gelacht --- Gelöscht ---"

                        Kommentar


                        • #13
                          OffTopic:
                          Es sind übrigens die DocType-Deklaration in den beiden Beiträgen mit HTML-Code, die zu lang sind
                          [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                          Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                          Super, danke!
                          [/COLOR]

                          Kommentar


                          • #14
                            Ah...blödes DOCTYPE. Daran habe ich jetzt gar nicht gedacht.
                            Ok, werde zukünftig mehr darauf achten, aber eine kleiner
                            Zeichencounter im Editor hier, würde die Sache doch erleichtern!

                            mfg streuner
                            Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert,
                            der letzte Netzknoten verkommerzialisert ist, werdet Ihr merken, dass Geld nicht von alleine programmiert.

                            "Diese Software verdient die 3 großen GGG: --- Gesehen --- Gelacht --- Gelöscht ---"

                            Kommentar


                            • #15
                              OffTopic:
                              Da geb ich dir Recht. Wenn ich mal wieder ne Stunde Zeit hab, bau ich dir (und allen anderen) ein Favelet dafür
                              [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                              Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                              Super, danke!
                              [/COLOR]

                              Kommentar

                              Lädt...
                              X