Probleme von Umlauten mit Webserver und Datenbank?

N’Abend! 

Ich habe folgendes Problem, ich schreibe im Moment auf der Arbeit unsere Website komplett neu. Als Grundlage verwende ich Wordpress. Die Website ist relativ komplex gehalten, sprich mit Kundenzugang, der aus selbstgeschriebenen PHP Skripten besteht (Für den Login/Kontos verwendete ich das Plugin Simple WordPress Membership). Soweit so gut, das alles funktioniert auch ohne Probleme. Nachdem ich aber mithilfe des Plugins All-in-one WP Migration den Server wechselte (von einem lokalen System innerhalb unseres Netzwerkes auf einen Host-Europe Webserver, habe ich das Problem das Umlaute falsch angezeigt werden (�). Ich kann mir vorstellen das es daran liegt, dass die Datenbanken 2 Unterschiedliche Typen sind und verschiedene Charsets eingestellt hatten. Den Charset der neuen Datenbank habe ich testweise mal umgestellt, jedoch ohne Ergebnis. Wenn ich jedoch über ein Formular Umlaute in die Datenbank eintrage, erhalte ich in der Datenbank folgende Zeichen: O: Ö   A: Ã„  U: Ãœ    o: ö  a: ä  u: ü  

Frage ich jedoch diese Eintragungen ab, werden die Umlaute korrekt dargestellt. 

Die Importierten Datensätze, sprich die Datensätze die auf der Website so � dargestellt werden, werden in meinem Datenbank Management als korrekte Umlaute angezeigt. 

Server/Datenbank Details:

Ich kann mir vorstellen das der Fehler Server Seitig ist, jedoch fehlt mir die Idee wie ich diesen Fehler beheben kann.  

Vielen Dank für eure Hilfe im Voraus :) 

Viele Grüße 

Miro  

Bild zum Beitrag
Computer, HTML, programmieren, WordPress, Datenbank, MySQL, PHP, Webserver
Problem mit Docker?

Problem mit Docker

und zwar haut bei mir der Befehl

RUN docker-php-ext-install mysqli && docker-php-ext-enable mysqli

nicht hin.

Ich erstelle ein Image über ein Dockerfile (docker build -t [name] .)

Das Image basierd auf debian:latest

Danach wird apt-get update & apt-get upgrade ausgeführt

Dann werden Komponenten installiert (sudo, apache2, php, cron, ...)

und wiederum danach werden die apache2 Konfigurierung angepasst das der Apache2-Server auf /webserver das DocumentRoot setzt

Soweit alles gut.

jetzt kann ich über den docker run befehl den parameter --mount hinzufügen und darüber ein externes Verzeichnis auf /webserver binden.

Bis hier her Funktioniert alles noch.

Jetzt wenn ich eine index.html aufrufe funktioniert das eine index.php funktioniert auch. Wenn ich jetzt jedoch in der .php Datei folgenden code Benutze(um auf MySql - Server zuzugreifen zu können):

      $mysqli = new mysqli("host_ip","bn","pw","tabelle");
      //echo mysqli_get_host_info($mysqli);
      if ($mysqli->connect_errno) {
          echo "Verbindung fehlgeschlagen: " . $mysqli->connect_error;
          return false;
      }else{
          return $mysqli;
      }

Kommt ein 500-ServerError.

Soweit ich es jetzt ergoogeln konnte muss ich zusätzlich den Port 3306(MySql-Port) Exposen und zusätzlich mit -p 3306:3306 in den docker run befehl einbauen.

Außerdem muss man antscheinend mit

RUN docker-php-ext-install mysqli && docker-php-ext-enable mysqli

Das MySqli modul installieren & aktivieren.

Hier ist auch schon das Problem:

Wenn ich mit oben genannten befehl mein Image aus dem Dockerfile erstellen möchte kommt (wenn er an der Stelle mit "RUN docker-php..." ankommt):

RUN docker-php-ext-install mysqli
 ---> Running in bce06404a5ca
/bin/sh: 1: docker-php-ext-install: not found
The command '/bin/sh -c docker-php-ext-install mysqli' returned a non-zero code: 127

Und jetzt meine Frage wie kann ich diesen fehler Beheben, ich weiß leider nicht mehr weiter!

Für die vollständigkeit hier noch der docker run befehl(den ich benutze wenn ich das Funktionierende Image ohne "RUN docker-php-..." nutze):

docker run --name webserver \
-p 80:80 \
-p 3306:3306 \
--mount type=bind,source="/lokaler/pfad",destination=/webserver [name_des_images]
Computer, Technik, Apache, container, Image, MySQL, PHP, Port, Technologie, PDO, Docker, Spiele und Gaming
Pdf Tabelle in MySQL?

Hi,

folgendes Problem. Ich bin gerade dabei für meine Schule einen Vertretungplan neu zu Programmieren. Die Idee war es den Plan in einer MySql Datenbank zu speichern.

Etwa so

und ihn dann mit Php aus der Datenbank zu lesen und in eine HTML mit echo auszugeben. Der Teil funktioniert schonmal.

Sieht dann später ca. so aus. (Design bei weitem noch nicht fest.)

Der weiter Plan wäre dann z.b mit NodeJs Pushnachrichten an eine Vertretungsplan App zu schicken.

Jedenfalls funktionier das jetzige System an der Schule aber so, dass eine Lehrkraft, die für die Erstellung des Vertretungsplans zuständig ist, diesen in einer Anwendung erstellt, die zum einen anscheinend viele Vorteile bei der Erstellung hat (z.b kann man alle normalen Stundenpläne direkt einsehen und mit wenigen klicks den Plan erstellen), aber leider nur in PDF die Tabellen exportieren kann. Zurzeit wird die Pdf dann auf dem Server in eine png umgewandelt und mit php dargestellt. Da der Provider der Schulwebsite (webhosting (kein vServer oder ssh Zugriff)) php5 was z.b beim Login für den Vertretungplan noch benutzt wird einstellen wird und man alles eh auf php7 umschreiben muss, dachte ich diese modernisierung wäre auch gleich eine gute Idee.

Jedenfalls ist jetzt das Problem wie ich die Pdf Tabellen in Mysql schreiben kann.

(Mir ist natürlich bewusst das Tabellen bei PDF nicht mit Zeilen und spalten direkt kopiert werden können.)

Ein Programm mit Verwendung von irgendwelchen einfach librarys wäre auch kein Problem.

Hier nochmal ein Bild von der jetzigen Tabelle als PNG

(Alle verschiedenen Stufen also z.b 5,6,7 usw. müssten in eine Seperate MySQL Tabelle)

Danke für alle Antworten.

Bild zum Beitrag
Lässt sich irgendwie von PDF konvertieren und in MySQL schreiben 100%
Ein neues Programm zur Erstellung mit direktem MySQL sup schreibe 0%
Computer, Technik, PDF, Webseite, Datenbank, MySQL, OCR, PHP, Technologie, Abstimmung, Umfrage
Problem mit MySQL wenn ich Apache2 über anderen Port verbinde?

Hallo,

heute habe ich ein kleines Problem,

und bevor ich eine moralpredigt bekomme das Man apache2 nur auf Port 80 und 443 benutzt:

"Ich weiß jedoch ist es sinnvoll den "Standartserver" (80/443) auf das verzeichnis /darf/jeder/sehen zu leiten und z.B. den "Home-Server" (8080) auf das verzeichnis /streng/geheim zu leiten"

Falls sich jetzt jemand Fragt wie ich das gemacht habe:

Terminal öffnen

cd /etc/apache2

nano ports.conf

hinzufügen von "Listen [DEIN_PORT]"

^X danach Y und ENTER

nano apache2.conf

danach unter den verzeichnisen einen Neuen eintrag beginnend mit "<Directory [/dein/streng/geheimes/verzeichnis]>" und anschließend mit den von dir gewünschten optionen versehen

^X danach Y und ENTER

dann in das Verzeichnis sites-enabled wechseln

cd /sites-enabled

danach entweder eine neue datei mit endung ".conf" erstellen oder die "000-default.conf" erweitern, in meinem Fall:

nano 000-default.conf

hinzufügen eines neuen Virtual host

<Virtualhost *:[DEIN_PORT_DER_IN_DER_PORTS_CONF_STEHT]>
DocumentRoot [DEIN_STRENG_GEHEIMES_VERZEICHNIS] 
ServerName STRENG_GEHEIMER_SERVER 
ServerAdmin SAG_ICH_DIR_NICHT@geheime_email.tld 
</Virtualhost> 

vor dem : muss ein * sein also *:

danach noch ein restart

sudo service apache2 restart

und tada "zweiter" Server läuft (evtl musst du [DEIN_STRENG_GEHEIMES_VERZEICHNIS] noch mit chown etc. modifizieren das Apache die nötigen rechte hat um darauf zugreifen zu können)

Jetzt mein Problem:

Unter dem "Standart" Port von Apache (80) wenn ich mit der datei test.php eine Verbindung zum Mysql - Server herstellen möchte funktioniert dies Prima, sobalt ich die Test.php jedoch auf meinen "zweiten" Server unter Port 8081 schiebe so kommt nur "Verbindung fehlgeschlagen: Connection refused" zum vorschein.

Inhalt von test.php:

<?php
    $db_user = "BENUTZER";
    $db_pw = "PASSWORT";
    $db_place = "DATENBANK";
    $db_server = "192.16x.17x.xxx";
    $mysqli = new mysqli($db_server, $db_user, $db_pw, $db_place);
    $state = true;
    if ($mysqli->connect_errno) {
        return "Verbindung fehlgeschlagen: " . $mysqli->connect_error;
        $state = false;
    }
    echo mysql_get_host_info($mysqli);

Info:

den Verwendeten nutzer habe ich von allen rechten bis hin zu "nur" datenbankspezifische Rechte schon alles durchprobiert. Auch habe ich schon von "localhost" auf "%" auf "192.16x.17x.xxx" etc. umgestellt.

Gehe ich auf 192.16x.17x.xxx/phpmyadmin und verwende den Benutzernamen + Passwort kann ich mich Problemlos einlogen (auch wenn ich über 192.16x.17x.xxx:8081/phpmyadmin einlogen möchte)

Ich sehe mich echt nicht raus als währe es gut wenn jmd den fehler erkennen und finden würde, danke schonmal

Computer, Technik, programmieren, MySQL, PHP, Technologie, Apache2, phpMyAdmin, Spiele und Gaming
Root-Server - Keine Verbindung mehr (PhpMyAdmin, MYSQL)?
Server, Computer, Technik, Minecraft, MySQL, PHP, Root Server, Technologie, Webspace, phpMyAdmin, Spiele und Gaming
Ajax holt Daten, JQUERY erkennt ID nicht?

Hallo

Ich hoffe, dass Ihr mir auf die Sprünge helfen könnt.

Mittels Button wird per JQUERY Ajax aufgerufen. Von der Datenbank werden Bilder ausgegeben.

Nun habe ich vorher schon einige Funktion gebastelt, die mir erlauben das Bild zu bearbeiten, z.B. mittels keyUP die Positionen vom Bild zu verändern, Größe und Co.

Da es mehrere Bilder sind, wird in der PHP Datei eine For-schleife erstellt, wo die Inputs und Buttons mit classen (und Id->testzweck) versehen werden (echo-ausgabe).

Nun lassen sich weder die Buttons noch mit Inputs steuern, weder mit this bzw Klassen noch mit der Id.

Hat vielleicht jemand eine Idee woran es liegen könnte?

      $('#load_image').click( function (event) {
        event.preventDefault();
        $.ajax({
          type: 'POST',
          url: 'ajax/home.php',
          data: $(this).serialize(),
          success: function (title_image) {
            $('#title_image').html(title_image);
          }

        });
      });



<button id="load_image" type="submit" name="load_image" class="btn btn-primary start"> <span><i class="glyphicon glyphicon-picture"></i>Bilder Laden</span> </button>
        <div id="title_image" class="margin">
          <!-- DIVS vom PHP AJAX -->
        </div>


Ajax PHP datei

if (!$title->execute()) {
  echo "Fehler";
} else {
  $name = array();
  while ($data = $title->fetch()) {
    $name[] = $data['name'];
  }
$count = count($name);
  for ($i=0; $i < $count; $i++) {
    echo $name[$i];

/* DIVS */
    echo '    <input type="number" id="image_horizontal_edit1" value="" placeholder="Horizontal">';
    echo '    <input type="number" id="image_vertical_edit1" value="" placeholder="Vertical"><br><br>';
    echo '    <input type="number" id="image_zoom_edit1" value="" placeholder="Zoom"><br><br>';


Computer, Technik, HTML, programmieren, HTML5, AJAX, JQuery, MySQL, PHP, Technologie
Suchfunktion mit PHP Version 7.1.12 und MySQL?

Hallo,

ich habe mir letztens auf YouTube ein Video angeschaut, wie man mit Hilfe von PHP eine MySQL-Datenbank durchsucht. Ich habe es selber ausprobiert, doch musste leider feststellen, dass der Code nicht für meine PHP-Version (7.1.12) geeignet ist.

Also habe ich versucht ihn umzuschreiben. Das hat aber leider nicht geklappt.

<html>
  <head>
    <title>Suche</title>
  </head>
  <body>
    <form action="" method="get">
      <input type="text" name="suchfeld"/>
      <input type="submit" name="suche_enter" value="suchen"/>
    </form>
    <hr /><br />
    <?php
      if (isset($_GET['suche_enter'])) {
        $host = "localhost";
        $user = "root";
        $pass = "";
        $db = "test_db";
        $conn = new mysqli($host, $user, $pass, $db);

        if ($conn->connect_errno) {
          die("Verbindung fehlgeschlagen: " . $mysqli->connect_error);
        }

        $suchbegriff = trim(htmlentities(stripslashes(mysqli_real_escape_string($_GET['suchfeld']))));
        $sql = "SELECT headline, text FROM article WHERE
          headline LIKE '%$suchbegriff%' OR
          image LIKE '%$suchbegriff%' OR
          overtext LIKE '%$suchbegriff%' OR
          text LIKE '%$suchbegriff%' OR
          gender1 LIKE '%$suchbegriff%' OR
          gender2 LIKE '%$suchbegriff%'
          ORDER BY headline, gender1, overtext, text, gender2, image";
        $query = mysqli_query($sql);

        echo "<ul>";

        WHILE ($row = mysqli_fetch_assoc($query)) {
          $headline = $row['headline'];
          $overtext = $row['overtext'];
          $text = $row['text'];

          echo "<li>$headline <br /><br />$overtext<br /><br /><hr /><br /></li>";
        }

        echo "</ul>";
      }
    ?>
  </body>
</html>

Wie müsste der Code richtig aussehen?

Computer, HTML, programmieren, Datenbank, MySQL, PHP, PHP 5

Meistgelesene Fragen zum Thema MySQL