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, 15: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
      SET NAMES utf8 ?

      Kommentar


      • #4
        @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


        • #5
          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, 07: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


          • #6
            ich denke da liegt meinerseits ein denkfehler vor.
            hatte es auf den verbindungszeichensatz geschoben

            MySQL :: MySQL 5.1 Referenzhandbuch :: 10.4 Verbindungszeichensatz und -sortierfolge

            kann allerdings beim wort Login kaum vorkommen

            und dann auch noch überlesen, das es sich um mssql handelt
            Zuletzt geändert von ; 11.12.2009, 07:39.

            Kommentar


            • #7
              @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


              • #8
                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


                • #9
                  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, 08: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


                  • #10
                    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


                    • #11
                      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


                      • #12
                        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, 08: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


                        • #13
                          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, 08: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


                          • #14
                            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


                            • #15
                              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

                              Lädt...
                              X