Navigation
 Startseite
 Fachbücher
 Forum
 Webmaster News
 Script Newsletter
 Kontakt
 Script Installation
 Php
 Php Tutorials
 Impressum

Community-Bereich
 kostenlos Registrieren
 Anmelden
 Benutzerliste

Script Datenbank
 Script Archiv
 Script Top 20
 Screenshots
 Testberichte

Suche
 

Unsere Php Scripts
 Counter Script
 Umfrage Script
 Bilder Upload Script
 Terminverwaltung
 Simple PHP Forum
 RSS Grabber

Script Mods
 phpBB Adsense Mode

Tools und Generatoren
 .htpasswd Generator
 md5 Generator
 base64 Generator
 ICQ Generator
 Colorpicker
 Unix timestamp Tool
 TLD Liste
 Webkatalog‑Verzeichnis

Partner
 Sprüche Treff

Hosterplus.de
Bekommen Sie Speicherplatz (Webspace), Domains und...
https://www.Hosterplus.de
Artfiles.de
Bietet Serviceorientierte Internetdienstleistungen...
https://www.Artfiles.de
 
 
 

Problem beim übertragen der Daten in MYSQL

Sie befinden sich: Home > Forum > Php > Problem beim über...

Wenn Sie einen Beitrag in diesem Forum schreiben möchten, so ist es erforderlich, dass Sie ein
 Benutzerkonto registrieren.

In diesen Beitrag wurden 2 Nachrichten geschrieben.

Problem beim übertragen der Daten in MYSQL
Nachricht wurde verfasst am 12.01.2017 um 17:46 Uhr von   Ebro
Guten Tag

Mein Problem ist eigentlich nur ein kosmetisches und trotzdem ärgere ich mich, dass ich das nicht hinbekomme.
Ich habe ein Formular erstellt womit ich die Daten per PHP in eine MYSQ-Datenbank schreiben kann. Das funktioniert eigentlich auch ganz gut, nur in der Datenbank erscheinen die Umlaute nicht so wie sie sollten.
Ich recherchiere schon seit Tagen im Internet und habe auch schon diverses ausprobiert, leider ohne Erfolg.
Ihr seit meine letzte Hoffnung.

Hier ein paar Angaben zur Datenbank.
Zeichensatz der Datenbank: utf8mb4_general_ci
Tabelle users: Typ = MylSAM, Kollation = utf8_general_ci

Nachfolgend der Code:


<?php



header('Content-Type: text/html; charset=utf-8');

$showFormular = true; //Variable ob das Registrierungsformular anezeigt werden soll

if(isset($_GET['register'])) {
$error = false;
$nachname = $_POST['nachname'];
$vorname = $_POST['vorname'];
$email = $_POST['email'];
$passwort = $_POST['passwort'];
$passwort2 = $_POST['passwort2'];

if(strlen($nachname) == 0) {
echo '<font class="f1">Bitte ein Name eingeben, </font>';
$error = true;
}
if(strlen($vorname) == 0) {
echo '<font class="f1">Bitte ein Vorname eingeben,<br></font> ';
$error = true;
}
if(!filter_var($email, FILTER_VALIDATE_EMAIL)) {
echo '<font class="f1">Bitte eine g&#252;ltige E-Mail-Adresse eingeben, </font> ';
$error = true;
}
if(strlen($passwort) == 0) {
echo '<font class="f1">Bitte ein Passwort angeben, </font> ';
$error = true;
}
if($passwort != $passwort2) {
echo '<font class="f1">Die Passw&#246;rter m&#252;ssen &#252;bereinstimmen, </font> ';
$error = true;
}

//&#65533;berpr&#65533;fe, dass die E-Mail-Adresse noch nicht registriert wurde
if(!$error) {
$statement = $pdo->prepare("SELECT * FROM users WHERE email = :email");
$result = $statement->execute(array('email' => $email));
$user = $statement->fetch();

if($user !== false) {
echo '<font class="f1">Diese E-Mail-Adresse ist bereits vergeben </font> ';
$error = true;
}
}
//Keine Fehler, wir k&#65533;nnen den Nutzer registrieren
if(!$error) {
//$passwort_hash = password_hash($passwort, PASSWORD_DEFAULT); (wenn Passwort verschl&#65533;sselt &#65533;bertragen werden soll muss diese Zeile aktiviert werden)

$statement = $pdo->prepare("INSERT INTO users (nachname, vorname, email, passwort) VALUES (:nachname, :vorname, :email, :passwort)");
$result = $statement->execute(array('nachname' => $nachname, 'vorname' => $vorname, 'email' => $email, 'passwort' => $passwort)); // $passwort muss dann nach $passwort_hash ge&#65533;ndert werden

if($result) {
echo '<font class="f2">Du wurdest erfolgreich registriert.</font><br>'; //<a href="login.php">Zum Login</a>';
echo '<font class="f2">Ich werde dich per Mail informieren, wenn dein Account aktiviert wurde.</font><br /><br />';
echo '<font class="f3"><a href="download.php">weiter</a> </font>';
$showFormular = false;
} else {
echo '<font class="f1">Beim Abspeichern ist leider ein Fehler aufgetreten </font> ';
}
}
}

if($showFormular) {
</div>

<div id="box">
<form accept-charset="UTF-8" method="post" action="?register=1" name="Nachname:">
<h1 class="titel">Registrierung f&#252;r den Download der Agenda</h1>
<table>
<tr>
<td class="sp1">Nachname:</td><td class="sp2"><input class="frm" type="nachname" name="nachname" maxlength="250" /></td>
</tr>
<tr>
<td class="sp1">Vorname:</td><td class="sp2"><input class="frm" type="vorname" name="vorname" size="27" maxlength="250" /></td>
</tr>
<tr>
<td class="sp1">E-Mail:</td><td class="sp2"><input class="frm" type="email" name="email" size="27" maxlength="250" /></td>
</tr>
<tr>
<td class="sp1a"></td><td class="sp2a">(mind. 6 Zeichen)</td>
</tr>
<tr>
<td class="sp1">Dein Passwort:</td><td class="sp2"><input class="frm" type="password" name="passwort" size="27" maxlength="250" /></td>
</tr>
<tr>
<td class="sp1">Passwort wiederholen:</td><td><input class="frm" type="password" name="passwort2" size="27" maxlength="250" /></td>
</tr>
</table>

<input class="but" type="submit" value="Abschicken" />
</form>
</div>


?>


Was mache ich falsch, dass die Umlaute nicht korrekt dargestellt werden?

Besten Dank für eure Hilfe.

Freundliche Grüsse Ebro
 
Nachricht wurde verfasst am 13.01.2017 um 09:31 Uhr von   Ebro
Hallo Leute

Habe es nach langem Pröbeln und Googeln doch noch geschafft.

Die Lösung:

$nachname = utf8_decode($_POST['nachname']);

Es gibt so viele Fragen zu diesem Thema und eine Lösung zu finden ist echt schwierig.
So hoffe ich doch mit diesem Tipp, manchen Anfängern wie ich einer bin, zu helfen.

Freundliche Grüsse Ebro
   Antwort schreiben