Ankündigung

Einklappen
Keine Ankündigung bisher.

Umlaute...

Einklappen

Neue Werbung 2019

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

  • JK
    hat ein Thema erstellt Umlaute....

    Umlaute...

    Hallo,
    Ich habe ein Skript geschrieben, das eine Benutzereingabe in eine Datenbank schreibt. Lokal mit einem XAMPP-Server auf Windows funktioniert das auch Problemlos.
    Wenn ich es allerdings auf einen Linux-Server lade werden die Umlaute aus einem Text nicht richtig in die Datenbank geschrieben (Nur irgendwelche Sonderzeichen).
    Meine erste Vermutung, die Online-Datenbank unterstützt keine Umlaute, doch in phpMyAdmin kann ich problemlos umlaute eintragen.

    Daraufhin habe ich folgenden kurzen Testscript geschrieben:
    PHP-Code:
    <form method="POST">
    <input type="text" name="input"><input type="submit">
    </form>
    <?php
    if (isset($_POST['input'])){
        @
    mysql_connect('localhost''root''passwort') OR mysql_connect('localhost''root'''); // Online (mit passwort) und offlinetauglich
        
    mysql_select_db('test');
        
    $tmp $_POST['input']; // in Variable speichern, um auszuschließen, dass php die Umlaute speichern kann.
        
    mysql_query('insert into tabelle(wert) values("'.$tmp.'")');
        
    mysql_close();
    }
    ?>
    Es funktioniert.
    Da der richtige Script aber größer ist weiß ich nicht, wo ich suchen soll. Hat jemand von euch eine Idee dazu?

    Zusammenfassung:
    Kurzscript: online + offline keine Fehler
    Langes Script: offline keine Fehler, online Falsche zeichen für die Umlaute.

    edit: htmlspecialchars, htmlentities möchte ich ungern benutzen

  • Gast-Avatar
    Ein Gast antwortete
    Zitat von JK
    edit: htmlspecialchars, htmlentities möchte ich ungern benutzen
    Zitat von JK
    Ich habe nun auch den Fehler gefunden. Es lag an der verwendung von htmlentities ohne Angabe eines Zeichensatzes
    supi

    Einen Kommentar schreiben:


  • JK
    antwortet
    Zitat von karl-150
    Fragen beachten:
    Zitat von Bruchpilot
    Und welche Codierung wird dem Browser angezeigt?
    Dein Problem sollte damit wohl gelöst sein...
    Ich habe diese beachtet und mit der Aussage, das es schon falsch in der Datenbank steht diese (wenn nicht das Absendeformular gemeint ist, wovon ich ausgehe) unwichtig gemacht.

    Ich habe nun auch den Fehler gefunden. Es lag an der verwendung von htmlentities ohne Angabe eines Zeichensatzes. Mit
    htmlentities ( string string , int quote_style , "UTF-8" )
    hat es geklappt. Ich bin mir allerdings nicht sicher ob das immer stimmt.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Fragen beachten:
    Zitat von Bruchpilot
    Und welche Codierung wird dem Browser angezeigt?
    Dein Problem sollte damit wohl gelöst sein...

    Einen Kommentar schreiben:


  • JK
    antwortet
    Ich habe nun festgestellt, dass es offenbar NICHT an mysql liegt, bei einem codieren der texte steht zum beispiel folgendes in der Tabelle:
    Code:
    ist doch selbstverst&Atilde;&curren;ndlich!
    Die kryptischen Zeichen kommen also schon irgendwie so bei php an.
    Ich bin trotzdem für jede weitere Idee dankbar, da wie gesagt, ein minimaler Script funktioniert hatte...

    gruß, Jan

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Und welche Codierung wird dem Browser angezeigt?
    Am besten im Browser selbst kontrollieren. Welchen benutzt Du?

    Einen Kommentar schreiben:


  • JK
    antwortet
    Bei beiden (ich hoffe das ist die richtige Angabe):
    Zeichensatz / Kollation der MySQL-Verbindung: utf8_general_ci

    Bei den ganzen Tabellen steht bei phpMyAdmin: Kollation: latin1_general_ci

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Welche Zeichencodierung wird bei Dir lokal und beim Webserver angegeben?

    Einen Kommentar schreiben:

Lädt...
X