MySql-Datenbank über php mit Daten füllen
Ich habe ein riesiges Problem! Und zwar wird nichts in meine Datenbank geschrieben: Ich habe letztens eine Datenbank erstellt und wollte sie nun über ein Formular mit Daten füllen. Das Formular ist super, aber irgendwie funktioniert bei mir der befehl mysql_query() nicht. Hier ist der code (ohne Formular):
- Code: Alles auswählen
<?php
$connect = mysql_connect("localhost:57120","forum-8a_user","•••••••") or die ("Keine Verbindung möglich");
$select = mysql_select_db("forum-8a_user") or die ("Die Datenbank existiert nicht");
*/Angaben werden per POST aus Formular in Variablen gespeichert*/
$vorname = $_POST["vorname"];
$nachname = $_POST["nachname"];
$username = $_POST["username"];
$passwort = $_POST["passwort"];
$eintrag = "INSERT INTO 'userinformationen' (vorname, nachname, user-name, passwort) VALUES ('$vorname', '$nachname', '$username', '$passwort')";
$eintragen = mysql_query($eintrag);
?>
Vorweg gesagt: ohne Fehlermeldung kann man auch nicht die Natur des Problems wissen. Da hier zudem noch externe Einflüsse (in diesem Fall mySQL) einen Fehler verursachen können, gibt es keine Pauschallösung, die ich dir nun anbieten könnte.
Du solltest beim Entwickeln eines Scriptes immer darauf achten, dass die Fehlerberichterstattung aktiviert ist. Dies kannst du im Script selbst machen, indem du am Start die Funktion error_reporting() aufrufst, so zum Beispiel um alle PHP-Fehlermeldungen anzeigen zu lassen:
- Code: Alles auswählen
<?php
error_reporting(E_ALL);
//ab hier dein Script
...
?>
- Code: Alles auswählen
...
$eintragen = mysql_query($eintrag);
if (mysql_errno()) {
$error = "MySQL Fehler ".mysql_errno().": ".mysql_error()."\n<br>Bei folgendem Query:<br>\n$query\n<br>";
// für produktiv eingesetzte Scripte wirkt es professioneller, den Entwickler
// bzw Seitenbetreiber darüber zu informieren und eine eigens gestaltete
// Fehlermeldung anzuzeigen.
echo $error;
}
?>
Dies kann man gar nicht oft genug erwähnen, weil schlecht gescriptete Webseiten enorme Sicherheitslücken bieten können. Nicht nur kann man damit Fehlercode in die Webseite bzw Datenbank einschleichen, man kann im schlimmsten Fall sogar bestehende Adressdaten klauen oder gar den gesamten Internetauftritt löschen.
Wie gesagt "musst" du die Daten vorher sichern, bevor du diese in eine Datenbank einträgst. Der Grund: Wenn du deine Daten nicht vorher absicherst, besteht die Gefahr eines Hack-Angriffs. In diesem Fall einer MySQL-Injection. Dadurch kann sich jeder Möchtegernhacker Zugang zu deiner Datenbank verschaffen, Daten auslesen oder die Datenbank sogar komplett löschen.
Auch bei der Ausgabe musst du aufpassen, denn da besteht die Gefahr vor weiteren Angriffen, wie unter anderem Cross-Site-Scripting (XSS), wodurch bösartiger Code in deine Seite eingeschleust werden kann.
Außerdem sollte man "nie" das Passwort ohne Verschlüsselung eintragen, da sonst der Angreifen es einfach sehen kann, wenn er Zugriff zu deiner Datenbank erlangt hat. Daher verwendet man hierfür normalerweise einen Hash, z.B. den md5-Hash.
Ich habe hier einmal eine leicht überarbeitete Version deines Programms, die funktionieren sollte:
- Code: Alles auswählen
<?php
$connect = mysql_connect("localhost:57120","forum-8a_user","•••••••") or die ("Keine Verbindung möglich");
$select = mysql_select_db("forum-8a_user") or die ("Die Datenbank existiert nicht");
*/Angaben werden per POST aus Formular in Variablen gespeichert*/
$vorname = mysql_real_escape_string($_POST["vorname"]);
$nachname = mysql_real_escape_string($_POST["nachname"]);
$username = mysql_real_escape_string($_POST["username"]);
$passwort = mysql_real_escape_string(md5($_POST["passwort"]));
$eintrag = "INSERT INTO 'userinformationen' (vorname, nachname, user-name, passwort) VALUES ('$vorname', '$nachname', '$username', '$passwort')";
$eintragen = mysql_query($eintrag) or die(mysql_error());
if ($eintragen == true){
echo "Eintragen erfolgreich";
}
else {
echo "Eintragen fehlgeschlagen";
}
?>
Ich muss noch hinzu sagen, dass du error_reporting() und alle anderen Möglichkeiten, die du zum Anzeigen der Fehler verwendest, auf jeden Fall aus dem Code nehmen musst, bevor du deine Seite aktiv betreibst. Denn solche Fehlermeldungen erhält dann auch der Client, was für Hacker eine wichtige Information sein kann (z.B. der Spaltenname).[/code]
Link dieser Seite https://www.talkteria.de/forum/topic-82847.html
Ähnliche Themen
Weitere interessante Themen
- Schöne Blatt Pflanze für die Wohnung 1027mal aufgerufen · 1 Antworten · Autor: Rubbelfeld · Letzter Beitrag von Verbena
Forum: Garten & Pflanzen
- Schöne Blatt Pflanze für die Wohnung
- Palmen für die Wohnung 2987mal aufgerufen · 1 Antworten · Autor: Dreddi · Letzter Beitrag von Verbena
Forum: Garten & Pflanzen
- Palmen für die Wohnung
- Notebook von Plus 3132mal aufgerufen · 3 Antworten · Autor: Simone1987 · Letzter Beitrag von Entenhausen
Forum: Hardware
- Notebook von Plus
- Tauchen in Israel 2155mal aufgerufen · 2 Antworten · Autor: grafeistee · Letzter Beitrag von Trisa
Forum: Urlaub & Reise
- Tauchen in Israel