Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] MySQL und Codierung ISO bzw. UTF

Einklappen

Neue Werbung 2019

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

  • [Erledigt] MySQL und Codierung ISO bzw. UTF

    Hallo,

    ich habe eine Bildgalerie mit der Codierung ISO 8859 (PHP) und Latin1-swedish (MySQL). Funktioniert einwandfrei, bis auf die Eingabe von Umlauten und Sonderzeichen.

    Aus diesem Grund habe ich die Codierung auf utf-8 (PHP) und utf8_bin (MySQL) geändert (von accept-chartset="ISO-8859-1" in accept-chartset="utf-8" und natürlich die meta-Daten).
    Sonst habe ich keine weiteren Änderugen an den PHP-Skripten vorgenommen.

    Jetzt funktioniert aber die Bildgalerie unvertändlicherweise in einigen Punkten nicht mehr.

    Und zwar:

    Alben administrieren - hinzufügen - OK
    bearbeiten - es läßt sich kein Album auswählen!
    löschen - es läßt sich kein Album auswählen!
    Fotos hochladen - OK
    Galerie anzeigen - z.B. Baum - Thumbnailanzeige OK
    Thumbnail anklicken - Detailanzeige OK
    Bearbeiten - OK
    Löschen - geht nicht!

    Hier kann man beide Galerien sehen und zwischen den Kodierungen umschalten.

    Wie gesagt, beide Galerien sind identisch bis auf die Kodierung.
    Ich kann mir das Alles nicht erklären und den Fehler lokalisieren.

    Vielleicht kann jemand helfen?

    Reichen zur Beurteilung die Seitenquelltexte oder soll ich noch die Skripte posten?

  • #2
    Das HTML lässt eine Vermutung zu.

    UTF-8:
    Code:
    Name: Bäume 
    Beschreibung: Bäume und Sträucher
    Code:
    <h1>Alben&uuml;bersicht</h1>
    Name: B&Atilde;&curren;ume
    <br />Beschreibung: B&Atilde;&curren;ume und Str&Atilde;&curren;ucher
    Die UTF-8 kodierten Umlaute wurden nochmal mit htmlentities() behandelt... da müsste man vlt. doch mal in den Quellcode gucken.
    Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

    Kommentar


    • #3
      deine mysql verbindung auch auf utf-8 setzen
      Nutze und - privaten Homepage
      Gott, lass Hirn vom Himmel regnen ... oder Steine

      Kommentar


      • #4
        http://www.php.de/adventskalender-20...perlative.html

        Immer wieder gerne gelesen zum Thema UTF-8
        Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

        Kommentar


        • #5
          Zitat von lstegelitz Beitrag anzeigen
          Das HTML lässt eine Vermutung zu.

          UTF-8:
          Code:
          Name: Bäume 
          Beschreibung: Bäume und Sträucher
          Code:
          <h1>Alben&uuml;bersicht</h1>
          Name: B&Atilde;&curren;ume
          <br />Beschreibung: B&Atilde;&curren;ume und Str&Atilde;&curren;ucher
          Die UTF-8 kodierten Umlaute wurden nochmal mit htmlentities() behandelt... da müsste man vlt. doch mal in den Quellcode gucken.

          http://www.php.de/adventskalender-20...perlative.html

          Immer wieder gerne gelesen zum Thema UTF-8
          Danke für die Antwort. Bezüglich htmlentities() werde ich die Skripte der utf8-Version noch behandeln. Der Link ist mir bekannt.

          # Skeeve
          deine mysql verbindung auch auf utf-8 setzen
          Die Einstellung im phpMyAdmin ist auf utf8_bin gesetzt.

          Das dürfte aber kaum etwas mit dem Nichtfunktionieren der angegebenen Punkte zu tun haben. (oder ?)
          Das ist im Augenblick mein Hauptanliegen!


          Ich füge die 3 nicht funktioniereneden Skripte bei.

          Alben-Edit
          PHP-Code:
          <?php
            error_reporting
          (E_ALL);

                echo 
          "<p style=\"font-weight:bold;\">Bereich: <span style=\"font-weight:italic;\">Album bearbeiten</span></p>\n";

                if(isset(
          $_POST['ID']) AND $_POST['ID'] != "0") {
                    if(isset(
          $_POST['submit']) AND $_POST['submit'] == 'Album ändern') {
                        
          $errors = array();
                        if(!isset(
          $_POST['Name'], $_POST['Beschreibung'], $_POST['Tag'], $_POST['Monat'], $_POST['Jahr']))
                            
          $errors[] = "Bitte benutzen sie das Formular aus der <b>»</b> <a href=\"index.php?s=alben\">Alben-Administration</a>\n";
                        else{
                            if(
          trim($_POST['Name']) == "")
                                
          $errors[] = "Geben Sie den Namen ein.\n";
                            if(
          trim($_POST['Beschreibung']) == "")
                                
          $errors[] = "Geben Sie die Beschreibung ein.\n";
                            if(!
          checkdate($_POST['Monat'], $_POST['Tag'], $_POST['Jahr']))
                                
          $errors[] = "Sie haben ein ung&uuml;ltiges Datum eingegeben.\n";
                        }
                        if(
          count($errors)){
                            echo 
          "<p>\n".
                                 
          "Das Album konnte nicht bearbeitet werden.<br />\n".
                                 
          "<br />\n";
                            foreach(
          $errors as $error)
                                echo 
          $error."<br />\n";
                            echo 
          "</p>\n";
                        }
                        else {
                            
          // Album updaten
                            
          $datum sprintf('%04d-%02d-%02d'$_POST['Jahr'], $_POST['Monat'], $_POST['Tag']);
                            
          $sql "UPDATE
                                            Alben
                                    SET
                                            Name = '"
          .mysql_real_escape_string(trim($_POST['Name']))."',
                                            Beschreibung = '"
          .mysql_real_escape_string(trim($_POST['Beschreibung']))."',
                                            Datum = '"
          .$datum."'
                                    WHERE
                                            ID = '"
          .$_POST['ID']."'
                                   "
          ;
                            
          mysql_query($sql) OR die("<pre>".$sql."</pre>".mysql_error());

                            echo 
          "<p>\n".
                                 
          "Das Album wurde bearbeitet.<br />\n".
                                 
          "Sie werden automatisch zu der Alben-Administration weitergeleitet.<br />\n".
                                 
          "Sollte die automatische Weiterleitung nicht funktionieren, klicken sie bitte <a href=\"index.php?s=alben\">hier</a>\n".
                                 
          "</p>\n";
                            echo 
          "<meta http-equiv=\"refresh\" content=\"1; URL=index.php?s=alben\">\n";
                        }
                    }
                    elseif(isset(
          $_POST['submit']) AND $_POST['submit'] == 'Album auswählen') {
                        
          $sql "SELECT
                                        Name,
                                        Beschreibung,
                                        YEAR(Datum) as Jahr,
                                        MONTH(Datum) as Monat,
                                        DAYOFMONTH(Datum) as Tag
                                FROM
                                        Alben
                                WHERE
                                        ID = '"
          .$_POST['ID']."'
                               "
          ;
                        
          $result mysql_query($sql) OR die("<pre>".$sql."
            </pre>"
          .mysql_error());
                        
          $row mysql_fetch_assoc($result);

                        echo 
          "<form ".
                             
          " action=\"index.php?s=alben&action=edit\" ".
                             
          " method=\"post\" ".
                             
          " accept-charset=\"utf-8\">\n";
                        echo 
          "<div>\n";
                        echo 
          "<label for=\"Name\">Name</label>\n";
                        echo 
          "<input type=\"text\" name=\"Name\" id=\"Name\" maxlenght=\"50\" value=\"".htmlentities($row['Name'], ENT_QUOTES)."\" >\n";
                        echo 
          "<br />\n";
                        echo 
          "<label for=\"Beschreibung\">Beschreibung</label>\n";
                        echo 
          "<input type=\"text\" name=\"Beschreibung\" id=\"Beschreibung\" maxlenght=\"\" value=\"".htmlentities($row['Beschreibung'], ENT_QUOTES)."\" >\n";
                        echo 
          "<br />\n";
                        echo 
          "<select name=\"Tag\">\n";
                        for(
          $i=1;$i<=31;$i++){
                            if(
          $i == $row['Tag'])
                                echo 
          "<option value=\"".$i."\" selected>\n";
                            else
                                echo 
          "<option value=\"".$i."\">\n";
                            echo 
          $i.".\n";
                            echo 
          "</option>\n";
                        }
                        echo 
          "</select>\n";
                        echo 
          "<select name=\"Monat\">\n";
                        for(
          $i=1;$i<=12;$i++){
                            if(
          $i == $row['Monat'])
                                echo 
          "<option value=\"".$i."\" selected>\n";
                            else
                                echo 
          "<option value=\"".$i."\">\n";
                            echo 
          $Monatsnamen[$i]."\n";
                            echo 
          "</option>\n";
                        }
                        echo 
          "       </select>\n";
                        echo 
          "       <select name=\"Jahr\">\n";
                        for(
          $i=$row['Jahr']-;$i<=$row['Jahr']+5$i++){
                            if(
          $i == $row['Jahr'])
                                echo 
          "<option value=\"".$i."\" selected>\n";
                            else
                                echo 
          "<option value=\"".$i."\">\n";
                            echo 
          $i."\n";
                            echo 
          "</option>\n";
                        }
                        echo 
          "</select>\n";
                        echo 
          "<br />\n";
                        echo 
          "<input type=\"hidden\" name=\"ID\" value=\"".$_POST['ID']."\" />\n";
                        echo 
          "<input type=\"submit\" name=\"submit\" value=\"Album ändern\" />\n";
                        echo 
          "</div></form>\n";
                    }
                }
                else {
                    
          // Vorauswahl alles bestehenden Alben
                    
          $sql "SELECT
                                    ID,
                                    Name
                            FROM
                                    Alben
                            ORDER BY
                                    Name ASC
                           "
          ;
                    
          $result mysql_query($sql) OR die("<pre>".$sql."</pre>".mysql_error());
                    if(!
          mysql_num_rows($result)) {
                        echo 
          "<p>\n".
                             
          "Es befinden sich keine Alben in der Datenbank\n".
                             
          "</p>\n";
                    }
                    else {
                        echo 
          "<form ".
                             
          "action=\"index.php?s=alben&action=edit\" ".
                             
          "method=\"post\" ".
                             
          "accept-charset=\"utf-8\">";
                        echo 
          " <div>\n";
                        echo 
          "<select name=\"ID\">\n";
                        echo 
          " <option value=\"0\">Bitte ein Album w&auml;hlen</option>\n";
                        while(
          $row mysql_fetch_assoc($result)) {
                            echo 
          " <option value=\"".$row['ID']."\">\n";
                            echo 
          htmlentities($row['Name'], ENT_QUOTES)."\n";
                            echo 
          " </option>\n";
                        }
                        echo 
          "</select>\n";
                        echo 
          "<br />\n";
                        echo 
          "<input type=\"submit\" name=\"submit\" value=\"Album ausw&auml;hlen\" />";
                        echo 
          " </div>\n";
                        echo 
          "</form>\n";
                    }
                }
          ?>
          Alben-Delete
          PHP-Code:
          <?php
            error_reporting
          (E_ALL);

                echo 
          "<p style=\"font-weight:bold;\">Bereich: <span style=\"font-weight:italic;\">Album l&ouml;schen</span></p>\n";

                if(isset(
          $_POST['ID']) AND $_POST['ID'] != "0") {
                    if(isset(
          $_POST['submit']) AND $_POST['submit'] == 'Album löschen') {
                        
          $errors = array();
                        if(!isset(
          $_POST['Aktion']) OR ($_POST['Aktion']!='delete' AND $_POST['Aktion']!='move'))
                            
          $errors[] = "Bitte benutzen sie das Formular aus der <a href=\"index.php?s=alben\">Alben-Administration</a>\n";
                        else{
                            if(
          $_POST['Aktion'] == 'move' AND (!isset($_POST['neue_ID']) OR $_POST['neue_ID']=='0'))
                                
          $errors[] = "Bitte wählen Sie ein Album aus, in das die Fotos verschoben werden sollen.\n";
                        }
                        if(
          count($errors)){
                            echo 
          "<p>\n".
                                 
          "Das Album konnte nicht gel&ouml;scht werden.<br />\n".
                                 
          "<br />\n";
                            foreach(
          $errors as $error)
                                echo 
          $error."<br />\n";
                            echo 
          "</p>\n";
                        }
                        else {
                            
          // Album löschen
                            
          $sql "DELETE FROM
                                            alben
                                    WHERE
                                            ID = '"
          .$_POST['ID']."'
                                   "
          ;
                            
          mysql_query($sql) OR die("<pre>".$sql."</pre>".mysql_error());
                            echo 
          "Das Album wurde gel&ouml;scht<br />\n";

                            if(
          $_POST['Aktion'] == 'delete'){
                                
          $sql "SELECT
                                                ID,
                                                Name
                                         FROM
                                                fotos
                                         WHERE
                                                Alben_ID = '"
          .$_POST['ID']."'
                                        "
          ;
                                
          $result mysql_query($sql) OR die("<pre>".$sql."</pre>".mysql_error());
                                while(
          $row mysql_fetch_assoc($result)){
                                    
          // Bilder vom Server löschen
                                    
          unlink(PIC_FOLDER.$row['Name']);
                                    
          // Thumbnails vom Server löschen
                                    
          unlink(TN_FOLDER."TN".substr($row['Name'],3));
                                    
          // Bilder aus der Datenbank löschen
                                    
          $sql "DELETE FROM
                                                        fotos
                                            WHERE
                                                        ID = '"
          .$row['ID']."'
                                           "
          ;
                                    
          mysql_query($sql) OR die("<pre>".$sql."</pre>".mysql_error());
                                }
                                echo 
          "Die Fotos und Thumbnails wurden gel&ouml;scht<br />\n";
                            }
                            else{
                                
          $sql "UPDATE
                                                fotos
                                        SET
                                                Alben_ID = '"
          .$_POST['neue_ID']."'
                                        WHERE
                                                Alben_ID = '"
          .$_POST['ID']."'
                                       "
          ;
                                
          mysql_query($sql) OR die("<pre>".$sql."</pre>".mysql_error());

                                echo 
          "Die Fotos wurden verschoben<br />\n";
                            }
                            echo 
          "Sie werden automatisch zu der Alben-Administration weitergeleitet.<br />\n".
                                 
          "Sollte die automatische Weiterleitung nicht funktionieren, klicken sie bitte <a href=\"index.php?s=alben\">hier</a>\n".
                                 
          "</p>\n";
                            echo 
          "<meta http-equiv=\"refresh\" content=\"1; URL=index.php?s=alben\">\n";
                        }
                    }
                    elseif(isset(
          $_POST['submit']) AND $_POST['submit'] == 'Album auswählen') {
                                
          $sql "SELECT
                                                Name,
                                                Beschreibung,
                                                DATE_FORMAT(Datum, '%d.%m.%Y') as Datum
                                        FROM
                                                alben
                                        WHERE
                                                ID = '"
          .$_POST['ID']."'
                                       "
          ;
                                
          $result mysql_query($sql) OR die("<pre>".$sql."</pre>".mysql_error());
                                
          $row mysql_fetch_assoc($result);

                                
          // Anzahl der Fotos im Album ermitteln
                                
          $sql "SELECT
                                                COUNT(*)
                                        FROM
                                                fotos
                                        WHERE
                                                Alben_ID = '"
          .$_POST['ID']."'
                                       "
          ;
                                
          $result mysql_query($sql) OR die("<pre>".$sql."</pre>".mysql_error());
                                
          $anzahl_fotos mysql_result($result0);

                                echo 
          "Name: ".htmlentities($row['Name'], ENT_QUOTES)."\n<br />".
                                     
          "Beschreibung: ".htmlentities($row['Beschreibung'], ENT_QUOTES)."\n<br />".
                                     
          "Datum: ".$row['Datum']."\n<br />".
                                     
          "Fotos: ".$anzahl_fotos."\n<br />";
                                echo 
          "<br />\n";

                                echo 
          "<form ".
                                     
          " action=\"index.php?s=alben&action=delete\" ".
                                     
          " method=\"post\" ".
                                     
          " accept-charset=\"utf-8\">\n";
                                echo 
          "<div>\n";
                                echo 
          "Die Fotos in diesem Album werden<br />\n";
                                echo 
          "<input type=\"radio\" name=\"Aktion\" value=\"delete\" checked=\"checked\" />\n";
                                echo 
          "gel&ouml;scht\n<br />";
                                
          $sql "SELECT
                                                ID,
                                                Name
                                        FROM
                                                alben
                                        WHERE
                                                ID <> '"
          .$_POST['ID']."'
                                        ORDER BY
                                                Name ASC
                                       "
          ;
                                 
          $result mysql_query($sql) OR die("<pre>".$sql."</pre>".mysql_error());
                                 if(!
          mysql_num_rows($result)) {
                                     echo 
          "<span style=\"font-style:italic;\">Keine weiteren Alben vorhanden</span><br />\n";
                                 }
                                 else{
                                     echo 
          "<input type=\"radio\" name=\"Aktion\" value=\"move\" />\n";
                                     echo 
          "verschoben nach\n";
                                     echo 
          "<select name=\"neue_ID\">\n";
                                     echo 
          " <option value=\"0\">Bitte ein Album wählen</option>\n";
                                     while(
          $row mysql_fetch_assoc($result)) {
                                         echo 
          " <option value=\"".$row['ID']."\">\n";
                                         echo 
          htmlentities($row['Name'], ENT_QUOTES)."\n";
                                         echo 
          " </option>\n";
                                     }
                                     echo 
          "</select>\n";
                                     echo 
          "<br />\n";
                                 }
                                 echo 
          "<input type=\"hidden\" name=\"ID\" value=\"".$_POST['ID']."\" />\n";
                                 echo 
          "<input type=\"submit\" name=\"submit\" value=\"Album löschen\" />\n";
                                 echo 
          "</div></form>\n";
                             }
                        }
                        else {
                         
          // Vorauswahl alles bestehenden Alben
                                 
          $sql "SELECT
                                                 ID,
                                                 Name
                                         FROM
                                                 alben
                                         ORDER BY
                                                 Name ASC
                                        "
          ;
                                 
          $result mysql_query($sql) OR die("<pre>".$sql."</pre>".mysql_error());
                                 if(!
          mysql_num_rows($result)) {
                                     echo 
          "<p>\n".
                                          
          "Es befinden sich keine Alben in der Datenbank\n".
                                          
          "</p>\n";
                                 }
                                 else {
                                     echo 
          "<form ".
                                          
          "action=\"index.php?s=alben&action=delete\" ".
                                          
          "method=\"post\" ".
                                          
          "accept-charset=\"utf-8\">";
                                     echo 
          " <div>\n";
                                     echo 
          "<select name=\"ID\">\n";
                                     echo 
          " <option value=\"0\">Bitte ein Album w&auml;hlen</option>\n";
                                     while(
          $row mysql_fetch_assoc($result)) {
                                         echo 
          " <option value=\"".$row['ID']."\">\n".
                                              
          htmlentities($row['Name'], ENT_QUOTES)."\n".
                                              
          " </option>\n";
                                     }
                                     echo 
          "</select>\n";
                                     echo 
          "<br />\n";
                                     echo 
          "<input type=\"submit\" name=\"submit\" value=\"Album ausw&auml;hlen\" />";
                                     echo 
          " </div>\n";
                                     echo 
          "</form>\n";
                                 }
                             }
                         
          ?>

          Bild-Delete

          PHP-Code:
          <?php
              error_reporting
          (E_ALL);

              echo 
          "<h1>Bild l&ouml;schen</h1>\n";

              
          $error '';
              
          // Prüfen ob ID übergeben wurde und numerisch ist
              
          if(!isset($_GET['id']) OR !is_numeric($_GET['id'])){
                  
          $error "Sie haben kein Foto ausgew&auml;hlt.<br />\n".
                           
          "Bitte benutzen Sie einen Link aus der <a href=\"index.php?s=galerie\">Galerie</a>\n";
              }
              else{
                  
          // $_GET_Wert sichern
                  
          $_GET['id'] = (int)mysql_real_escape_string($_GET['id']);
                  
          // Prüfen ob ein Foto zur ID existiert
                  
          $sql "SELECT
                                  Name,
                                  Beschreibung
                          FROM
                                  fotos
                          WHERE
                                  ID = '"
          .$_GET['id']."'
                         "
          ;
                  
          $result mysql_query($sql) OR die("<pre>".$sql."</pre>".mysql_error());
                  
          $anzahl mysql_num_rows($result);
                  if(!
          $anzahl)
                      
          $error "Dieses Foto existiert nicht.<br />\n".
                               
          "Bitte benutzen Sie einen Link aus der <a href=\"index.php?s=galerie\">Galerie</a>\n";
              }

              if(
          $error != '')
                  echo 
          $error;
              else{
                  if(isset(
          $_POST['submit']) AND $_POST['submit']=='Foto löschen'){
                      
          $sql "SELECT
                                      Name,
                                      Alben_ID
                              FROM
                                      fotos
                              WHERE
                                      ID = '"
          .$_GET['id']."'
                             "
          ;
                      
          $result mysql_query($sql) OR die("<pre>".$sql."</pre>".mysql_error());
                      
          $row mysql_fetch_assoc($result);
                      
          // Bild vom Server löschen
                      
          unlink(PIC_FOLDER.$row['Name']);
                      
          // Thumbnail vom Server löschen
                      
          unlink(TN_FOLDER."TN".substr($row['Name'],3));
                      
          // Bilder aus der Datenbank löschen
                      
          $sql "DELETE FROM
                                      fotos
                              WHERE
                                      ID = '"
          .$_GET['id']."'
                             "
          ;
                      
          mysql_query($sql) OR die("<pre>".$sql."</pre>".mysql_error());

                      echo 
          "<p>\n".
                           
          "Das Foto wurde gel&ouml;scht<br />\n".
                           
          "<a href=\"index.php?s=overview&id=".$row['Alben_ID']."\">Zur&uuml;ck zum Album</a>\n".
                           
          "</p>\n";
                  }
                  else{
                      
          // Bildname und Beschreibung in $pic speichern
                      
          $pic mysql_fetch_assoc($result);
                      
          // Foto zur Kontrolle anzeigen
                      
          echo "<img src=\"".PIC_FOLDER.$pic['Name']."\" alt=\"".$pic['Name']."\" />\n";
                      echo 
          "<br />\n";
                      
          // Beschreibung anzeigen
                      
          echo "<p>\n".
                           
          htmlentities($pic['Beschreibung'], ENT_QUOTES).
                           
          "</p>\n";
                      echo 
          "<form ".
                           
          " action=\"index.php?s=delete&id=".$_GET['id']."\" ".
                           
          " method=\"post\" ".
                           
          " accept-charset=\"utf-8\">\n";
                      echo 
          "<div>\n";
                      echo 
          "<input type=\"submit\" name=\"submit\" value=\"Foto l&ouml;schen\" />\n";
                      echo 
          "</div></form>\n";
                  }
              }
          ?>
          Wie gesagt, die Skripte sind absolut identisch mit der ISO-Version und dort aber voll funktionsfähig.

          Kommentar


          • #6
            Da lag ich offensichtlich richtig.

            Hast du den Link denn auch mal angeklickt, den ich dir gegeben hab? Da steht eine Menge nützlicher Informationen zu utf8 drin..

            Du schreibst, das die Datenbank erst latin eingestellt war, und dann umgestellt wurde. Wurden die Daten denn neu importiert? Vorhandene Daten werden nicht einfach umkodiert, wenn du den Zeichensatz neu einstellst. Tatsächlich macht das umtellen des Zeichensatzes aus den Inhalten Salat. Man kann halt nicht ein X-kodiertes Zeichen nehmen und behaupten, es wäre Y-kodiert, das funktioniert so nicht.

            Stelle alles auf utf8 um. Dazu gehört auch, wie skeeve schrieb, der Transportweg zwischen Script und Datenbank. Lies bitte den Link den ich dir gepostet hatte. Dann füge Daten im korrekten Encoding, namentlich uf8, in die Datenbank ein. Vergiss htmlentities(), das ist nicht mehr nötig (wenn XSS Gefährung vorliegt, sichere dich anderweitig dagegen ab).
            Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

            Kommentar


            • #7
              Anscheinend war es ein Fehler zu Testzwecken zwischen den Kodierungen umschalten zu wollen.
              Ich installiere die Galerie neu, jetzt nur in utf8, inkl. neuem Upload von Fotos.
              Mal sehen, ob die Fehlfunktionen tatsächlich nur von der Kodierung herrühren.
              Ich melde mich dann.

              Kommentar


              • #8
                ich meine die mysql VERBINDUNG, nicht wie deine db, tabellen oder felder codiert sind.

                PHP-Code:
                $conn = new mysqli($db_host$db_user$db_pass$db_base) or die ('Konnte keine Verbindung zum DB-Server herstellen: '.$conn->connect_error);
                $conn->set_charset("utf8"); 
                Nutze und - privaten Homepage
                Gott, lass Hirn vom Himmel regnen ... oder Steine

                Kommentar


                • #9
                  Hi @Hardyy,
                  utf8_bin ist eine schlechte Idee! Benutze utf8_general_ci oder utf8_unicode_ci für dein Vorhaben.
                  lg

                  Kommentar


                  • #10
                    Zitat von Skeeve Beitrag anzeigen
                    ich meine die mysql VERBINDUNG, nicht wie deine db, tabellen oder felder codiert sind.

                    PHP-Code:
                    $conn = new mysqli($db_host$db_user$db_pass$db_base) or die ('Konnte keine Verbindung zum DB-Server herstellen: '.$conn->connect_error);
                    $conn->set_charset("utf8"); 
                    Alles klar, ich habe den Link von #lstegelitz bereits gekannt und mich auch danach gerichtet.

                    #amplituda
                    Code:
                    Hi @Hardyy,
                    utf8_bin ist eine schlechte Idee! Benutze utf8_general_ci oder utf8_unicode_ci für dein Vorhaben.
                    lg
                    utf8_unicode_ci ist neueren Datums und werde ihn einsetzen.
                    Die Unterschiede zu utf8_general_ci konnte ich googeln aber nicht die Unterschiede zu utf8_bin.

                    Kommentar


                    • #11
                      Hallo,
                      da bin ich wieder.

                      Habe meine Galerie gemäß Eueren Vorschlägen neu installiert, dh. in den Skripten habe ich alle htmlentities weggelassen, alle accept-charset auf utf-8 gesetzt.
                      MySQL neu konfiguriert, Zeichensatz/Kollation der MySQL-Verbindung auf utf8_unicode_ci gesetzt genauso wie die Kollation der Textfelder.
                      Die Inhalte habe ich online übertragen.

                      Die Zeichenkodierung funktioniert einwandfrei.

                      Aber die Fehlfunktionen sind nach wie vor da.

                      Alben administrieren - hinzufügen - OK
                      bearbeiten - es läßt sich kein Album auswählen!
                      löschen - es läßt sich kein Album auswählen!
                      Fotos hochladen - OK
                      Galerie anzeigen - z.B. Baum - Thumbnailanzeige OK
                      Thumbnail anklicken - Detailanzeige OK
                      Bearbeiten - OK
                      Löschen - geht nicht!

                      Hier nocheinmal der Link

                      und nachfolgend die korrigierten Sckripte:

                      Alben edit:
                      PHP-Code:
                      <?php
                        error_reporting
                      (E_ALL);

                            echo 
                      "<p style=\"font-weight:bold;\">Bereich: <span style=\"font-weight:italic;\">Album bearbeiten</span></p>\n";

                            if(isset(
                      $_POST['ID']) AND $_POST['ID'] != "0") {
                                if(isset(
                      $_POST['submit']) AND $_POST['submit'] == 'Album ändern') {
                                    
                      $errors = array();
                                    if(!isset(
                      $_POST['Name'], $_POST['Beschreibung'], $_POST['Tag'], $_POST['Monat'], $_POST['Jahr']))
                                        
                      $errors[] = "Bitte benutzen sie das Formular aus der <b>»</b> <a href=\"index.php?s=alben\">Alben-Administration</a>\n";
                                    else{
                                        if(
                      trim($_POST['Name']) == "")
                                            
                      $errors[] = "Geben Sie den Namen ein.\n";
                                        if(
                      trim($_POST['Beschreibung']) == "")
                                            
                      $errors[] = "Geben Sie die Beschreibung ein.\n";
                                        if(!
                      checkdate($_POST['Monat'], $_POST['Tag'], $_POST['Jahr']))
                                            
                      $errors[] = "Sie haben ein ung&uuml;ltiges Datum eingegeben.\n";
                                    }
                                    if(
                      count($errors)){
                                        echo 
                      "<p>\n".
                                             
                      "Das Album konnte nicht bearbeitet werden.<br />\n".
                                             
                      "<br />\n";
                                        foreach(
                      $errors as $error)
                                            echo 
                      $error."<br />\n";
                                        echo 
                      "</p>\n";
                                    }
                                    else {
                                        
                      // Album updaten
                                        
                      $datum sprintf('%04d-%02d-%02d'$_POST['Jahr'], $_POST['Monat'], $_POST['Tag']);
                                        
                      $sql "UPDATE
                                                        alben
                                                SET
                                                        Name = '"
                      .mysql_real_escape_string(trim($_POST['Name']))."',
                                                        Beschreibung = '"
                      .mysql_real_escape_string(trim($_POST['Beschreibung']))."',
                                                        Datum = '"
                      .$datum."'
                                                WHERE
                                                        ID = '"
                      .$_POST['ID']."'
                                               "
                      ;
                                        
                      mysql_query($sql) OR die("<pre>".$sql."</pre>".mysql_error());

                                        echo 
                      "<p>\n".
                                             
                      "Das Album wurde bearbeitet.<br />\n".
                                             
                      "Sie werden automatisch zu der Alben-Administration weitergeleitet.<br />\n".
                                             
                      "Sollte die automatische Weiterleitung nicht funktionieren, klicken sie bitte <a href=\"index.php?s=alben\">hier</a>\n".
                                             
                      "</p>\n";
                                        echo 
                      "<meta http-equiv=\"refresh\" content=\"1; URL=index.php?s=alben\">\n";
                                    }
                                }
                                elseif(isset(
                      $_POST['submit']) AND $_POST['submit'] == 'Album auswählen') {
                                    
                      $sql "SELECT
                                                    Name,
                                                    Beschreibung,
                                                    YEAR(Datum) as Jahr,
                                                    MONTH(Datum) as Monat,
                                                    DAYOFMONTH(Datum) as Tag
                                            FROM
                                                    alben
                                            WHERE
                                                    ID = '"
                      .$_POST['ID']."'
                                           "
                      ;
                                    
                      $result mysql_query($sql) OR die("<pre>".$sql."
                        </pre>"
                      .mysql_error());
                                    
                      $row mysql_fetch_assoc($result);

                                    echo 
                      "<form ".
                                         
                      " action=\"index.php?s=alben&action=edit\" ".
                                         
                      " method=\"post\" ".
                                         
                      " accept-charset=\"utf-8\">\n";
                                    echo 
                      "<div>\n";
                                    echo 
                      "<label for=\"Name\">Name</label>\n";
                                    echo 
                      "<input type=\"text\" name=\"Name\" id=\"Name\" maxlenght=\"50\" value=\"".$row['Name']."\" >\n";
                                    echo 
                      "<br />\n";
                                    echo 
                      "<label for=\"Beschreibung\">Beschreibung</label>\n";
                                    echo 
                      "<input type=\"text\" name=\"Beschreibung\" id=\"Beschreibung\" maxlenght=\"\" value=\"".$row['Beschreibung']."\" >\n";
                                    echo 
                      "<br />\n";
                                    echo 
                      "<select name=\"Tag\">\n";
                                    for(
                      $i=1;$i<=31;$i++){
                                        if(
                      $i == $row['Tag'])
                                            echo 
                      "<option value=\"".$i."\" selected>\n";
                                        else
                                            echo 
                      "<option value=\"".$i."\">\n";
                                        echo 
                      $i.".\n";
                                        echo 
                      "</option>\n";
                                    }
                                    echo 
                      "</select>\n";
                                    echo 
                      "<select name=\"Monat\">\n";
                                    for(
                      $i=1;$i<=12;$i++){
                                        if(
                      $i == $row['Monat'])
                                            echo 
                      "<option value=\"".$i."\" selected>\n";
                                        else
                                            echo 
                      "<option value=\"".$i."\">\n";
                                        echo 
                      $Monatsnamen[$i]."\n";
                                        echo 
                      "</option>\n";
                                    }
                                    echo 
                      "       </select>\n";
                                    echo 
                      "       <select name=\"Jahr\">\n";
                                    for(
                      $i=$row['Jahr']-;$i<=$row['Jahr']+5$i++){
                                        if(
                      $i == $row['Jahr'])
                                            echo 
                      "<option value=\"".$i."\" selected>\n";
                                        else
                                            echo 
                      "<option value=\"".$i."\">\n";
                                        echo 
                      $i."\n";
                                        echo 
                      "</option>\n";
                                    }
                                    echo 
                      "</select>\n";
                                    echo 
                      "<br />\n";
                                    echo 
                      "<input type=\"hidden\" name=\"ID\" value=\"".$_POST['ID']."\" />\n";
                                    echo 
                      "<input type=\"submit\" name=\"submit\" value=\"Album ändern\" />\n";
                                    echo 
                      "</div></form>\n";
                                }
                            }
                            else {
                                
                      // Vorauswahl alles bestehenden Alben
                                
                      $sql "SELECT
                                                ID,
                                                Name
                                        FROM
                                                alben
                                        ORDER BY
                                                Name ASC
                                       "
                      ;
                                
                      $result mysql_query($sql) OR die("<pre>".$sql."</pre>".mysql_error());
                                if(!
                      mysql_num_rows($result)) {
                                    echo 
                      "<p>\n".
                                         
                      "Es befinden sich keine Alben in der Datenbank\n".
                                         
                      "</p>\n";
                                }
                                else {
                                    echo 
                      "<form ".
                                         
                      "action=\"index.php?s=alben&action=edit\" ".
                                         
                      "method=\"post\" ".
                                         
                      "accept-charset=\"utf-8\">";
                                    echo 
                      " <div>\n";
                                    echo 
                      "<select name=\"ID\">\n";
                                    echo 
                      " <option value=\"0\">Bitte ein Album w&auml;hlen</option>\n";
                                    while(
                      $row mysql_fetch_assoc($result)) {
                                        echo 
                      " <option value=\"".$row['ID']."\">\n";
                                        echo 
                      $row['Name']."\n";
                                        echo 
                      " </option>\n";
                                    }
                                    echo 
                      "</select>\n";
                                    echo 
                      "<br />\n";
                                    echo 
                      "<input type=\"submit\" name=\"submit\" value=\"Album ausw&auml;hlen\" />";
                                    echo 
                      " </div>\n";
                                    echo 
                      "</form>\n";
                                }
                            }
                      ?>
                      Alben delete:
                      PHP-Code:
                      <?php
                        error_reporting
                      (E_ALL);

                            echo 
                      "<p style=\"font-weight:bold;\">Bereich: <span style=\"font-weight:italic;\">Album l&ouml;schen</span></p>\n";

                            if(isset(
                      $_POST['ID']) AND $_POST['ID'] != "0") {
                                if(isset(
                      $_POST['submit']) AND $_POST['submit'] == 'Album löschen') {
                                    
                      $errors = array();
                                    if(!isset(
                      $_POST['Aktion']) OR ($_POST['Aktion']!='delete' AND $_POST['Aktion']!='move'))
                                        
                      $errors[] = "Bitte benutzen sie das Formular aus der <a href=\"index.php?s=alben\">Alben-Administration</a>\n";
                                    else{
                                        if(
                      $_POST['Aktion'] == 'move' AND (!isset($_POST['neue_ID']) OR $_POST['neue_ID']=='0'))
                                            
                      $errors[] = "Bitte wählen Sie ein Album aus, in das die Fotos verschoben werden sollen.\n";
                                    }
                                    if(
                      count($errors)){
                                        echo 
                      "<p>\n".
                                             
                      "Das Album konnte nicht gel&ouml;scht werden.<br />\n".
                                             
                      "<br />\n";
                                        foreach(
                      $errors as $error)
                                            echo 
                      $error."<br />\n";
                                        echo 
                      "</p>\n";
                                    }
                                    else {
                                        
                      // Album löschen
                                        
                      $sql "DELETE FROM
                                                        alben
                                                WHERE
                                                        ID = '"
                      .$_POST['ID']."'
                                               "
                      ;
                                        
                      mysql_query($sql) OR die("<pre>".$sql."</pre>".mysql_error());
                                        echo 
                      "Das Album wurde gel&ouml;scht<br />\n";

                                        if(
                      $_POST['Aktion'] == 'delete'){
                                            
                      $sql "SELECT
                                                            ID,
                                                            Name
                                                     FROM
                                                            fotos
                                                     WHERE
                                                            Alben_ID = '"
                      .$_POST['ID']."'
                                                    "
                      ;
                                            
                      $result mysql_query($sql) OR die("<pre>".$sql."</pre>".mysql_error());
                                            while(
                      $row mysql_fetch_assoc($result)){
                                                
                      // Bilder vom Server löschen
                                                
                      unlink(PIC_FOLDER.$row['Name']);
                                                
                      // Thumbnails vom Server löschen
                                                
                      unlink(TN_FOLDER."TN".substr($row['Name'],3));
                                                
                      // Bilder aus der Datenbank löschen
                                                
                      $sql "DELETE FROM
                                                                    fotos
                                                        WHERE
                                                                    ID = '"
                      .$row['ID']."'
                                                       "
                      ;
                                                
                      mysql_query($sql) OR die("<pre>".$sql."</pre>".mysql_error());
                                            }
                                            echo 
                      "Die Fotos und Thumbnails wurden gel&ouml;scht<br />\n";
                                        }
                                        else{
                                            
                      $sql "UPDATE
                                                            fotos
                                                    SET
                                                            Alben_ID = '"
                      .$_POST['neue_ID']."'
                                                    WHERE
                                                            Alben_ID = '"
                      .$_POST['ID']."'
                                                   "
                      ;
                                            
                      mysql_query($sql) OR die("<pre>".$sql."</pre>".mysql_error());

                                            echo 
                      "Die Fotos wurden verschoben<br />\n";
                                        }
                                        echo 
                      "Sie werden automatisch zu der Alben-Administration weitergeleitet.<br />\n".
                                             
                      "Sollte die automatische Weiterleitung nicht funktionieren, klicken sie bitte <a href=\"index.php?s=alben\">hier</a>\n".
                                             
                      "</p>\n";
                                        echo 
                      "<meta http-equiv=\"refresh\" content=\"1; URL=index.php?s=alben\">\n";
                                    }
                                }
                                elseif(isset(
                      $_POST['submit']) AND $_POST['submit'] == 'Album auswählen') {
                                            
                      $sql "SELECT
                                                            Name,
                                                            Beschreibung,
                                                            DATE_FORMAT(Datum, '%d.%m.%Y') as Datum
                                                    FROM
                                                            alben
                                                    WHERE
                                                            ID = '"
                      .$_POST['ID']."'
                                                   "
                      ;
                                            
                      $result mysql_query($sql) OR die("<pre>".$sql."</pre>".mysql_error());
                                            
                      $row mysql_fetch_assoc($result);

                                            
                      // Anzahl der Fotos im Album ermitteln
                                            
                      $sql "SELECT
                                                            COUNT(*)
                                                    FROM
                                                            fotos
                                                    WHERE
                                                            Alben_ID = '"
                      .$_POST['ID']."'
                                                   "
                      ;
                                            
                      $result mysql_query($sql) OR die("<pre>".$sql."</pre>".mysql_error());
                                            
                      $anzahl_fotos mysql_result($result0);

                                            echo 
                      "Name: ".$row['Name']."\n<br />".
                                                 
                      "Beschreibung: ".$row['Beschreibung']."\n<br />".
                                                 
                      "Datum: ".$row['Datum']."\n<br />".
                                                 
                      "Fotos: ".$anzahl_fotos."\n<br />";
                                            echo 
                      "<br />\n";

                                            echo 
                      "<form ".
                                                 
                      " action=\"index.php?s=alben&action=delete\" ".
                                                 
                      " method=\"post\" ".
                                                 
                      " accept-charset=\"utf-8\">\n";
                                            echo 
                      "<div>\n";
                                            echo 
                      "Die Fotos in diesem Album werden<br />\n";
                                            echo 
                      "<input type=\"radio\" name=\"Aktion\" value=\"delete\" checked=\"checked\" />\n";
                                            echo 
                      "gel&ouml;scht\n<br />";
                                            
                      $sql "SELECT
                                                            ID,
                                                            Name
                                                    FROM
                                                            alben
                                                    WHERE
                                                            ID <> '"
                      .$_POST['ID']."'
                                                    ORDER BY
                                                            Name ASC
                                                   "
                      ;
                                             
                      $result mysql_query($sql) OR die("<pre>".$sql."</pre>".mysql_error());
                                             if(!
                      mysql_num_rows($result)) {
                                                 echo 
                      "<span style=\"font-style:italic;\">Keine weiteren Alben vorhanden</span><br />\n";
                                             }
                                             else{
                                                 echo 
                      "<input type=\"radio\" name=\"Aktion\" value=\"move\" />\n";
                                                 echo 
                      "verschoben nach\n";
                                                 echo 
                      "<select name=\"neue_ID\">\n";
                                                 echo 
                      " <option value=\"0\">Bitte ein Album wählen</option>\n";
                                                 while(
                      $row mysql_fetch_assoc($result)) {
                                                     echo 
                      " <option value=\"".$row['ID']."\">\n";
                                                     echo 
                      $row['Name']."\n";
                                                     echo 
                      " </option>\n";
                                                 }
                                                 echo 
                      "</select>\n";
                                                 echo 
                      "<br />\n";
                                             }
                                             echo 
                      "<input type=\"hidden\" name=\"ID\" value=\"".$_POST['ID']."\" />\n";
                                             echo 
                      "<input type=\"submit\" name=\"submit\" value=\"Album löschen\" />\n";
                                             echo 
                      "</div></form>\n";
                                         }
                                    }
                                    else {
                                     
                      // Vorauswahl alles bestehenden Alben
                                             
                      $sql "SELECT
                                                             ID,
                                                             Name
                                                     FROM
                                                             alben
                                                     ORDER BY
                                                             Name ASC
                                                    "
                      ;
                                             
                      $result mysql_query($sql) OR die("<pre>".$sql."</pre>".mysql_error());
                                             if(!
                      mysql_num_rows($result)) {
                                                 echo 
                      "<p>\n".
                                                      
                      "Es befinden sich keine Alben in der Datenbank\n".
                                                      
                      "</p>\n";
                                             }
                                             else {
                                                 echo 
                      "<form ".
                                                      
                      "action=\"index.php?s=alben&action=delete\" ".
                                                      
                      "method=\"post\" ".
                                                      
                      "accept-charset=\"utf-8\">";
                                                 echo 
                      " <div>\n";
                                                 echo 
                      "<select name=\"ID\">\n";
                                                 echo 
                      " <option value=\"0\">Bitte ein Album w&auml;hlen</option>\n";
                                                 while(
                      $row mysql_fetch_assoc($result)) {
                                                     echo 
                      " <option value=\"".$row['ID']."\">\n".
                                                          
                      $row['Name']."\n".
                                                          
                      " </option>\n";
                                                 }
                                                 echo 
                      "</select>\n";
                                                 echo 
                      "<br />\n";
                                                 echo 
                      "<input type=\"submit\" name=\"submit\" value=\"Album ausw&auml;hlen\" />";
                                                 echo 
                      " </div>\n";
                                                 echo 
                      "</form>\n";
                                             }
                                         }
                                     
                      ?>
                      Fotos delete:
                      PHP-Code:
                      <?php
                          error_reporting
                      (E_ALL);

                          echo 
                      "<h1>Bild l&ouml;schen</h1>\n";

                          
                      $error '';
                          
                      // Prüfen ob ID übergeben wurde und numerisch ist
                          
                      if(!isset($_GET['id']) OR !is_numeric($_GET['id'])){
                              
                      $error "Sie haben kein Foto ausgew&auml;hlt.<br />\n".
                                       
                      "Bitte benutzen Sie einen Link aus der <a href=\"index.php?s=galerie\">Galerie</a>\n";
                          }
                          else{
                              
                      // $_GET_Wert sichern
                              
                      $_GET['id'] = (int)mysql_real_escape_string($_GET['id']);
                              
                      // Prüfen ob ein Foto zur ID existiert
                              
                      $sql "SELECT
                                              Name,
                                              Beschreibung
                                      FROM
                                              fotos
                                      WHERE
                                              ID = '"
                      .$_GET['id']."'
                                     "
                      ;
                              
                      $result mysql_query($sql) OR die("<pre>".$sql."</pre>".mysql_error());
                              
                      $anzahl mysql_num_rows($result);
                              if(!
                      $anzahl)
                                  
                      $error "Dieses Foto existiert nicht.<br />\n".
                                           
                      "Bitte benutzen Sie einen Link aus der <a href=\"index.php?s=galerie\">Galerie</a>\n";
                          }

                          if(
                      $error != '')
                              echo 
                      $error;
                          else{
                              if(isset(
                      $_POST['submit']) AND $_POST['submit']=='Foto löschen'){
                                  
                      $sql "SELECT
                                                  Name,
                                                  Alben_ID
                                          FROM
                                                  fotos
                                          WHERE
                                                  ID = '"
                      .$_GET['id']."'
                                         "
                      ;
                                  
                      $result mysql_query($sql) OR die("<pre>".$sql."</pre>".mysql_error());
                                  
                      $row mysql_fetch_assoc($result);
                                  
                      // Bild vom Server löschen
                                  
                      unlink(PIC_FOLDER.$row['Name']);
                                  
                      // Thumbnail vom Server löschen
                                  
                      unlink(TN_FOLDER."TN".substr($row['Name'],3));
                                  
                      // Bilder aus der Datenbank löschen
                                  
                      $sql "DELETE FROM
                                                  fotos
                                          WHERE
                                                  ID = '"
                      .$_GET['id']."'
                                         "
                      ;
                                  
                      mysql_query($sql) OR die("<pre>".$sql."</pre>".mysql_error());

                                  echo 
                      "<p>\n".
                                       
                      "Das Foto wurde gel&ouml;scht<br />\n".
                                       
                      "<a href=\"index.php?s=overview&id=".$row['Alben_ID']."\">Zur&uuml;ck zum Album</a>\n".
                                       
                      "</p>\n";
                              }
                              else{
                                  
                      // Bildname und Beschreibung in $pic speichern
                                  
                      $pic mysql_fetch_assoc($result);
                                  
                      // Foto zur Kontrolle anzeigen
                                  
                      echo "<img src=\"".PIC_FOLDER.$pic['Name']."\" alt=\"".$pic['Name']."\" />\n";
                                  echo 
                      "<br />\n";
                                  
                      // Beschreibung anzeigen
                                  
                      echo "<p>\n".
                                       
                      $pic['Beschreibung'].
                                       
                      "</p>\n";
                                  echo 
                      "<form ".
                                       
                      " action=\"index.php?s=delete&id=".$_GET['id']."\" ".
                                       
                      " method=\"post\" ".
                                       
                      " accept-charset=\"utf-8\">\n";
                                  echo 
                      "<div>\n";
                                  echo 
                      "<input type=\"submit\" name=\"submit\" value=\"Foto l&ouml;schen\" />\n";
                                  echo 
                      "</div></form>\n";
                              }
                          }
                      ?>
                      mysql (natürlich mit den online Einstellungen):
                      PHP-Code:
                      <?php
                         error_reporting
                      (E_ALL);

                            
                      define ('MYSQL_HOST''localhost');
                            
                      define ('MYSQL_USER''root');
                            
                      define ('MYSQL_PASS''');
                            
                      define ('MYSQL_DATA''bildgalerie_utf8');

                            
                      $connid = @mysql_connect(MYSQL_HOSTMYSQL_USERMYSQL_PASS) OR die("Error: ".mysql_error());
                            
                      mysql_select_db(MYSQL_DATA) OR die("Error: ".mysql_error());
                            
                      mysql_query("SET CHARACTER SET 'utf8'");
                      ?>
                      Ich komme immer noch nicht dahinter, warum die Fehlfunktionen nur bei der utf8-Kodierung auftreten und nicht unter der ISO-Kodierung!

                      Kommentar


                      • #12
                        Du mixst POST und GET und verlierst dich darin...

                        Deine Form action zum Beispiel, die enthält GET Parameter "s" und "action", deine Scripte fragen aber POST Parameter "Aktion", "ID" und "neue_ID" ab. Der Button im Lösch-Formular (hinter dem Live-Link!) hat das Value "Album auswählen", es wird im Code aber gegen "Album löschen" verglichen... die Tatsache, das im Code der Button "Foto l&ouml;schen" genannt wird, lässt darauf schliessen, das die Liveversion nicht mit dem gezeigten Code übereinstimmt.

                        Desweiteren - du arbeitest doch nun mit UTF-8, was soll die HTML Entity? Im Script kommt genau diese Entity an, wenn du dann mit "Foto löschen" vergleichst, schlägt der Vergleich fehl.

                        Das ist alles zusammen genommen ein ziemliches Wirrwarr.
                        Als erstes debuggst du nun bei jedem Request die GET und POST Werte und schaust dir erstmal an, was überhaupt an Daten ankommt.
                        Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                        Kommentar


                        • #13
                          Vielen Dank für die Tipps.
                          Jetzt weiß ich zumindest wo ich suchen und ändern muß, auch wenn es mir schleierhaft bleibt, daß unter ISO alles gelaufen ist.
                          Auf jeden Fall berichte ich, ob es mir gelungen ist wieder alles zum Laufen zu bringen.

                          Kommentar


                          • #14
                            Um die Datenbankverbindung auf UTF-8 umzustellen, bitte nicht "SET NAMES" verwenden.

                            Weshalb? Das habe ich erst vor kurzem einem Webinar entnommen, hier entlang: http://www.mysql.de/news-and-events/...hp-developers/

                            Und stattdessen? Entweder http://php.net/manual/de/mysqli.set-charset.php (hier steht es nochmals in der Dokumentation) oder bei PDO den DSN-Parameter anpassen. Zum Beispiel:
                            Code:
                            mysql:dbname=example;host=localhost;charset=utf8

                            Kommentar


                            • #15
                              Zitat von lstegelitz Beitrag anzeigen
                              Desweiteren - du arbeitest doch nun mit UTF-8, was soll die HTML Entity? Im Script kommt genau diese Entity an, wenn du dann mit "Foto löschen" vergleichst, schlägt der Vergleich fehl.
                              Da bin ich wieder und kann mich wieder meiner Fotogalerie widmen.
                              Danke für euere Anregungen.

                              Das Hauptproblem habe ich jetzt lokalisiert:
                              Mein WEB-Editor - ich benütze Webocton-Scriptly - kann leider nicht die Skripte in utf8 abspeichern. Nachdem ich alle Skripte in Notepad++ kopiert habe und dann zurück mit der Kodierung utf-8 ohne BOM, funktioniert alles bestens. Nur wenn ich sie in Webocton-Scriptly wieder öffne und abspeichere, ist die Kodierung wieder weg.

                              Fragen:

                              Welchen WEB-Editor (Freeware) würdet ihr mir empfehlen, der utf8 unterstützt?

                              Und zur Textformatierung:
                              Umlaute in der Fotobeschreibung klappen jetzt einwandfrei, Zeilenumbrüche dank nl2br ebenfalls. Aber wie kann ich einzelne Wörter hervorheben (fett) bzw. einfärben, und Links einbinden? Muß ich doch wieder auf HTML Entities zurückgreifen?

                              Für euere Ratschläge wäre ich dankbar.
                              Gruß
                              Hardyy

                              Kommentar

                              Lädt...
                              X