Ankündigung

Einklappen
Keine Ankündigung bisher.

Datenbank Umlaute

Einklappen

Neue Werbung 2019

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

  • Datenbank Umlaute

    Hallo,

    Ich habe ein Problem mit meiner Datenbank.
    Und zwar wenn ich mich auf meiner Seite registriere stehen die Umlaute falsch in der Datenbank.

    PHP-Code:
    Registrierungöäü
    Datenbank
    öäü 
    Ich habe die Datenbank und die Spalten auf utf_general_ci umgestellt.

    In der header.php
    PHP-Code:
    <meta Content-Typetext/htmlcharset=utf-/> 
    Was mach ich falsch bzw. wo liegt der Fehler?

    Vielen Dank für eure Hilfe!

    mfg.
    Mike

  • #2
    HTTP-Content-Type-Charset und DB-Connection-Charset wären noch Kandidaten. Ich tippe auf Letzteres.

    - http://php-de.github.io/jumpto/faq/#html-charset
    - http://phpforum.de/forum/showthread.php?t=217877

    Kommentar


    • #3
      Zitat von fmm Beitrag anzeigen
      PHP-Code:
      Registrierungöäü
      Datenbank
      öäü 
      Das kommt raus wenn ein UTF8 kodierter String durch eine Funktion geht die Latin1 nach UTF8 konvertiert. Die Ursache wird sehr wahrschelich die Datenbankverbindung sein. (als ersten Query "SET NAMES 'utf8'" ausführen, oder die entsprechende Methode der Schnittstelle verwenden)

      Kommentar


      • #4
        Zitat von erc Beitrag anzeigen
        Das kommt raus wenn ein UTF8 kodierter String durch eine Funktion geht die Latin1 nach UTF8 konvertiert. Die Ursache wird sehr wahrschelich die Datenbankverbindung sein. (als ersten Query "SET NAMES 'utf8'" ausführen, oder die entsprechende Methode der Schnittstelle verwenden)
        was genau muss ich hier jetzt machen?

        PHP-Code:
        <?php


        $db_host 
        "xxx";
        $db_name "xxx"
        $db_user "xxx"
        $db_pass "xxx"
        $db_table_prefix "xxx";

        GLOBAL 
        $errors;
        GLOBAL 
        $successes;

        $errors = array();
        $successes = array();

        $mysqli = new mysqli($db_host$db_user$db_pass$db_name);
        GLOBAL 
        $mysqli;

        if(
        mysqli_connect_errno()) {
            echo 
        "Connection Failed: " mysqli_connect_errno();
            exit();
        }

        ?>

        Kommentar


        • #5
          http://php.net/manual/de/mysqli.set-charset.php

          Kommentar


          • #6
            Hast du die Links oben nicht angesehen?
            Hier nochmals mit Anker: http://phpforum.de/forum/showthread.php?t=217877#MySQL

            Und hier noch - letzter Absatz: http://php-de.github.io/jumpto/mysql-and-utf8/

            Anmerkung: global ist pfui, das macht man nicht. Man übergibt Werte die eine Funktion/Methode braucht als Parameter. Mit global erzeugst du äußere Abhängigkeiten/Seiteneffekte.

            Lg
            The string "()()" is not palindrom but the String "())(" is.

            Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
            PHP.de Wissenssammlung | Kein Support per PN

            Kommentar


            • #7
              Zitat von hausl Beitrag anzeigen
              Hast du die Links oben nicht angesehen?

              Hier nochmals mit Anker: http://phpforum.de/forum/showthread.php?t=217877#MySQL

              Und hier noch - letzter Absatz: http://php-de.github.io/jumpto/mysql-and-utf8/

              Anmerkung: global ist pfui, das macht man nicht. Man übergibt Werte die eine Funktion/Methode braucht als Parameter. Mit global erzeugst du äußere Abhängigkeiten/Seiteneffekte.

              Lg
              Nein habs nicht gesehen sry

              Habe es jetzt hin bekommen.
              Nun hätte ich noch das Problem wenn ich jetzt mit der Suchfunktion nach einem Benutzer mit öäü suche, die Umlaute so Angezeigt werden.

              PHP-Code:
              ��� 

              Kommentar


              • #8
                Wie sind deine Seiten Kodiert? UTF8 WOB?

                Kommentar


                • #9
                  Zitat von tessakavanagh Beitrag anzeigen
                  wie sind deine seiten kodiert? Utf8 wob?
                  utf8

                  Kommentar


                  • #10
                    Hier einmal meine Suchseite.

                    PHP-Code:

                    <?php 

                    error_reporting
                    (E_ALL E_STRICT);  
                    ini_set("display_errors"1); 

                    require_once(
                    "models/config.php");
                    if (!
                    securePage($_SERVER['SCRIPT_NAME'])){die();}
                    require_once(
                    "models/header.php");

                    if(!
                    isUserLoggedIn()) { header("Location: login.php"); die(); }


                    $connection mysqli_connect('xxx','xxx','xxx','xxx');

                    if (isset(
                    $_POST['vorname']))
                       {
                          
                          
                    $conditions = array();
                          
                          foreach (
                    $_POST as $name => $value)
                          {
                              
                    // Submit-Button ausschließen
                              
                    if ($name == "submit")
                                continue;
                                
                              if (! empty(
                    $value))
                                 
                    $conditions[] = "`$name` like '%" mysqli_real_escape_string($connection$value) . "%'";
                        
                            
                          }
                          
                          
                    $query "Select 
                                       `firma`, 
                                       `branche`,
                                       `vorname`, 
                                       `nachname`,
                                       `maedchenname`, 
                                       `homepage`, 
                                       `telefonnummer`, 
                                       `adresse`, 
                                       `plz`, 
                                       `wohnort`, 
                                       `email`,
                                       `beschreibung`
                                     FROM
                                       `uc_users`"
                    ;
                                       
                         if (
                    count($conditions))
                           
                    $query .= " where " implode(" and "$conditions);
                           
                         
                    $result mysqli_query($connection$query)
                            or die (
                    "MySQL-Fehler: " mysqli_error($connection));
                            
                       }
                       if (isset(
                    $result) && mysqli_num_rows($result) > 0) { 

                        
                    $sOutput ""
                        while (
                    $row mysqli_fetch_assoc($result)) { 
                        
                    $firma $row["firma"];
                        
                    $branche $row["branche"];
                        
                    $vorname $row["vorname"];
                        
                    $nachname $row["nachname"];
                        
                    $maedchenname $row["maedchenname"];
                        
                    $homepage $row["homepage"];
                        
                    $telefonnummer $row["telefonnummer"];
                        
                    $adresse $row["adresse"];
                        
                    $plz $row["plz"];
                        
                    $wohnort $row["wohnort"];
                        
                    $email $row["email"];
                        
                    $beschreibung $row["beschreibung"];
                        
                        
                    $sOutput .= "} 

                    } else { 
                        
                        
                    $sOutput =  "<p>0 Ergebnisse für Ihre Suchanfrage.</p><br />"; 

                    ?>

                    <html>
                    <head>
                    </head>

                    <body>
                    <div id='wrapper'>
                        <div id='top'>
                            <div id='logo'>
                                <a href='index.php'><img src='models/site-templates/images/logo2.png' alt='logo'/></a>
                            </div>
                        </div>

                        <div id='navi'>
                            <?php include("
                    navi.php")?>
                        </div>

                    <div id='content'>
                        <div id='main'>
                            <h2>Suche</h2>
                                <article>
                                Hier können sie Benutzer suchen.
                                </article> 
                    <br />
                    <br />
                    <div id="
                    suchbox">
                    <form action="
                    <?php echo $_SERVER['SCRIPT_NAME']; ?>" method="post">
                    <label>Vorname:</label>
                    <input name="vorname" type="text" size="20" maxlength="50">
                    </form>
                    </div>
                        <div id="out">
                            <?php 
                                
                    echo $sOutput ;
                            
                    ?>
                        </div>
                    </div>

                    <div id='werbung'>
                    <?php include("bildwechsel.php"); ?>

                    </div>
                    </div>
                    </div>
                    </body>
                    </html>

                    Kommentar


                    • #11
                      PHP-Code:
                      $sOutput .= "} 
                      du hast da einen Syntaxfehler ....

                      Im Grunde muss einfach alles(!) UTF-8 sein, dann funktinoiert das, schau die den einen Link von oben nochmals an.. Was schickt dein Webserver wirklich raus? Setz den Meta-HTML-Tag, oder zB auch accept charset im Form etc..

                      LG
                      The string "()()" is not palindrom but the String "())(" is.

                      Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                      PHP.de Wissenssammlung | Kein Support per PN

                      Kommentar


                      • #12
                        Zitat von hausl Beitrag anzeigen
                        du hast da einen Syntaxfehler ....
                        Das passt doch?

                        PHP-Code:

                        if (isset($result) && mysqli_num_rows($result) > 0) { 

                            
                        $sOutput ""
                            while (
                        $row mysqli_fetch_assoc($result)) { 
                            
                        $firma $row["firma"];
                            
                        $branche $row["branche"];
                            
                        $vorname $row["vorname"];
                            
                        $nachname $row["nachname"];
                            
                        $maedchenname $row["maedchenname"];
                            
                        $homepage $row["homepage"];
                            
                        $telefonnummer $row["telefonnummer"];
                            
                        $adresse $row["adresse"];
                            
                        $plz $row["plz"];
                            
                        $wohnort $row["wohnort"];
                            
                        $email $row["email"];
                            
                        $beschreibung $row["beschreibung"];
                            
                            
                        $sOutput .= "
                                         <div>Vorname:</div><div>
                        $vorname</div>
                                         
                                         
                            } 
                        Habe jetzt das hinzugefügt im form tag.

                        PHP-Code:

                        <form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" method="post" accept-charset="utf-8">
                        Wenn ich jetzt nach ö suche kommen gar keine Ergebnisse mehr.

                        Kommentar


                        • #13
                          Das passt doch?
                          Nein weder das:

                          PHP-Code:
                             $sOutput .= "
                                           <div>Vorname:</div><div>
                          $vorname</div>
                                           
                              } 
                          noch das:

                          PHP-Code:
                             $sOutput .= "}  

                          } else {  
                               
                              
                          $sOutput =  "<p>0 Ergebnisse für Ihre Suchanfrage.</p><br />";  

                          Das gibt einen Parse-Error, dh wenn du in der php.ini die Fehlerausgabe deaktiviert hast bekommst du u.U. deswegen eine weiße Seite. Denn dann greift auch das hochdrehen in deinem Script nicht.
                          The string "()()" is not palindrom but the String "())(" is.

                          Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                          PHP.de Wissenssammlung | Kein Support per PN

                          Kommentar


                          • #14
                            Zitat von hausl Beitrag anzeigen
                            Nein weder das:



                            noch das:



                            Das gibt einen Parse-Error, dh wenn du in der php.ini die Fehlerausgabe deaktiviert hast bekommst du u.U. deswegen eine weiße Seite. Denn dann greift auch das hochdrehen in deinem Script nicht.
                            Ouh hab das Irgendwie gelöscht, hat ja alles Funktioniert.
                            So jetzt.

                            PHP-Code:

                            $sOutput 
                            .= "<div>Vorname:</div><div>$vorname</div>"

                            Aber das Problem mit den Umlauten ist noch nicht erledigt :s...

                            Kommentar


                            • #15
                              Hab es jetzt gelöst...
                              Ich Idiot hab zwei mal zu der DB connected.

                              Ein mal in der suche.php selbst:

                              PHP-Code:


                              $connection 
                              mysqli_connect('xxx','xxx','xxx','xxx'); 
                              Und ein mal in meiner dbsettings.php

                              Vielen Dank für eure Hilfe

                              Kommentar

                              Lädt...
                              X