Problem beim übertragen der Daten in MYSQL

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
 
Script Seite

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

speicherzentrum.d...
Bei den Anbieter bekommt man Webspace, Domains und...
http://www.speicherzentrum.de
Hosterplus.de
Bekommen Sie Speicherplatz (Webspace), Domains und...
http://www.Hosterplus.de
 
 
 

Problem beim übertragen der Daten in MYSQL

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

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:

 



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