Zeichensatzproblem seit Ajax

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

  • Zeichensatzproblem seit Ajax

    ...und noch so einer mit dem alten Problem ;-)

    Hallo zusammen,

    seit einiger Zeit läuft erfolgreich meine mit PHP und MySql realisierte Wunschbox in unserem Online-Radio. Nun wollte ich die Datenübertragung mit Ajax laufen lassen. Seitdem ich die Ajax-Übertragung der Daten mit jQuery laufen habe, habe ich dieses leidige Zeichensatzproblem.
    Meine Scripte laufen mit dem charset ISO-8859-15, meine Datenbank steht auf latin1_german_ci. Bisher hat auch immer alles gut geklappt, nur seitdem ich Ajax verwende werden die Umlaute kryptisch gespeichert und auch ausgegeben. Z.B. ä = ä.
    Nun war ich ja noch nicht ganz untätig, hab mich mal umgesehen in diversen Foren und Tuorials und nach längerem suchen hab ich gedacht, och, ganz einfach, stellste halt mal alles auf UTF-8 um. Gesagt, getan, alles geändert (auch die Einstellung im Editor) auf den Server bei Strato geladen, und siehe da.... nix läuft mehr. Es werden keine Daten mehr in der Datenbank gespeichert.
    Nun meine Frage, gibt es einfache Lösungsansätze für mein Problem?
    Bestimmt hab ich wieder tausend Sachen vergessen zu erwähnen, bitte nicht meckern, einfach posten, alles was fehlt liefere ich gerne nach.

    Gruß

    jovel

  • #2
    mal das hier ausprobiert?
    PHP-Code:
    mysql_query ('SET NAMES utf8'); 
    Peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Noch nicht ausprobiert, werd ich gleich morgen machen und Bericht erstatten.

      Gruß

      jovel
      Zuletzt geändert von jovel51; 16.01.2014, 20:47.

      Kommentar


      • #4
        PHP-Code:
        <?php
          $mysqli 
        = new mysqli('*****'/*Root-Server*/'******'
                            
        /*Benutzer-Name*/'******'/*Passwort*/,
                             
        '******'/*Datenbankname*/);
          
        /*Datenbankverbindung prüfen*/
          
        if (!$mysqli) {
            
        printf("Datenbankfehler! Bitte später nochmal probieren",
            
        mysqli_connect_error());
            exit();
        }
        mysqli_set_charset($mysqli"utf8");
        ?>
        Habe das ganze nun so geschrieben. Alle beteiligten Scripte und auch die komplette Datenbank ist auf UTF-8 umgestellt, bekomme trotzdem noch keine Umlaute angezeigt.
        Liegt es vielleicht an der aufbereitung der Daten die per POST an das PHP-Script gesendet werden.

        PHP-Code:
          $name htmlentities(strip_tags($_POST["Name"]), ENT_QUOTES);
          
        $interpret htmlentities(strip_tags($_POST["Interpret"]), ENT_QUOTES);
          
        $titel htmlentities(strip_tags($_POST["Titel"]), ENT_QUOTES);
          
        $gruesse htmlentities(strip_tags($_POST["Grüsse"]), ENT_QUOTES); 
        Für gute Tipps bin ich dankbar!

        Gruß

        jovel

        Kommentar


        • #5
          PHP-Code:
          <?php
            $mysqli 
          = new mysqli('*****'/*Root-Server*/'******'
                              
          /*Benutzer-Name*/'******'/*Passwort*/,
                               
          '******'/*Datenbankname*/);
            
          /*Datenbankverbindung prüfen*/
            
          if (!$mysqli) {
              
          printf("Datenbankfehler! Bitte später nochmal probieren",
              
          mysqli_connect_error());
              exit();
          }
          mysqli_set_charset($mysqli"utf8");
          ?>
          HAbe das ganze nun so geschrieben. Alle beteiligten Daten und auch die komplette Datenbank ist auf UTF-8 umgestellt, bekomme trotzdem noch keine Umlaute angezeigt.
          Liegt es vielleicht an der aufbereitung der Daten die per POST an das PHP-Script gesendet werden.

          PHP-Code:
            $name htmlentities(strip_tags($_POST["Name"]), ENT_QUOTES);
            
          $interpret htmlentities(strip_tags($_POST["Interpret"]), ENT_QUOTES);
            
          $titel htmlentities(strip_tags($_POST["Titel"]), ENT_QUOTES);
            
          $gruesse htmlentities(strip_tags($_POST["Grüsse"]), ENT_QUOTES); 
          Für gute Tipps bin ich dankbar!

          Gruß

          jovel

          Kommentar


          • #6
            Du verwendest htmlentities() falsch. Eigentlich brauchst du es gar nicht. Du brauchst nur bei der Ausgabe (und nicht bei der Variablenzuweisung) htmlspecialchars().

            Kommentar


            • #7
              Danke für die Antwort, Du meinst also so?

              PHP-Code:
                $name strip_tags($_POST["Name"]);
                
              $interpret strip_tags($_POST["Interpret"]);
                
              $titel strip_tags($_POST["Titel"]);
                
              $gruesse strip_tags($_POST["Grüsse"]); 
              Gruß
              jovel

              Kommentar


              • #8
                Super, klappt, vielen Dank für die Hilfe!!!!


                ...und im nachhinein betrachtet auch logisch!

                Gruß

                jovel

                Kommentar


                • #9
                  Warum strip_tags()? Ist doch auch falsch.

                  Kommentar

                  Lädt...
                  X