Formulare in Datenbank speichern
Chris Pfisterer
- datenbank
- html
- php
Könnte mir bitte einer helfen? Wenn ich in die Felder etwas eingebe, dann passiert überhaupt nichts, wenn ich auf den submit button tippe, genauso wie wenn ich auf den reset button tippe
Ist dringend, da ich es für die mündliche Prüfung benötige Ich dank euch schon mal im Voraus
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
<meta name="author" content="Criss">
<meta name="editor" content="html-editor phase 5">
<link rel="stylesheet" href="../CSS/Formatierungen.css" type="text/css">
</head>
<body text="#000000" bgcolor="#FFFF80" link="#FF0000" alink="#FF0000" vlink="#FF0000">
<form method="post" action="Verarbeitung.php">
<h2>Bei Team-Thirty anmelden</h2>
<h3>Du bist nur noch einen Mausklick entfernt, dann stehen dir alle Türen offen ...</h3>
<table width="50%" border="0" cellpadding="5" cellspacing="2" align="center">
<tr>
<td><label for="Ben">Benutzername*:</label> </td>
<td><input type="text" name="Ben" required></td>
</tr>
<tr>
<td><label for="Pass">Passwort*:</label> </td>
<td><input type="password" name="Pass" required> </td>
</tr>
<tr>
<td><label for="email">eMail-Adresse*:</label> </td>
<td><input type="email" name="email" required></td>
</tr>
<tr>
<td><label for="Vorname">Vorname*:</label> </td>
<td><input type="text" name="Vorname" required></td>
</tr>
<tr>
<td><label for="Nachname">Nachname*:</label> </td>
<td><input type="text" name="Nachname" required></td>
</tr>
<tr>
<td><label for="Geschlecht">Geschlecht*:</label> </td>
<td> <input type="radio" name="Geschlecht" id="männlich"> männlich
<input type="radio" name="Geschlecht" id="weiblich"> weiblich</td>
</tr>
<tr>
<td><label for="Datum">Geburtsdatum*:</label> </td>
<td><input type="date" name="Datum" required></td>
</tr>
<tr>
<td><label for="Handy">Handynummer:</label> </td>
<td><input type="tel" name="Handy"></td>
</tr>
<tr>
<td><label for="Straße">Straße:</label> </td>
<td><input type="text" name="Straße">
<input type="text" name="Hnummer" size="3" ></td>
</tr>
<tr>
<td><label for="PLZ">PLZ:</label> </td>
<td><input type="text" name="PLZ"></td>
</tr>
<tr>
<td><label for="Wohnort">Wohnort:</label> </td>
<td><input type="text" name="Wohnort"></td>
</tr>
</table>
</form>
<p align="center"><input type="submit" value="Abschicken" />
<input type="reset" value="Zurücksetzen" /></p>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4
/loose.dtd">
<html>
<head>
<title></title>
<meta name="author" content="Criss">
<meta name="editor" content="html-editor phase 5">
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">
<?php
$db= mysqli_connect("localhost","root","","Kommunikationsplattform")
$Nachname= $_POST['Nachname'];
$Vorname= $_POST['Vorname'];
$Straße= $_POST['Straße'];
$Hnummer= $_POST['Hnummer'];
$PLZ= $_POST['PLZ'];
$Wohnort= $_POST['Wohnort'];
$Datum= $_POST['Datum'];
$Geschlecht= $_POST['Geschlecht'];
$email= $_POST['email'];
$Ben= $_POST['Ben'];
$Pass= $_POST['Pass'];
$insert="INSERT INTO person (Name, Vorname, Straße, Hausnummer, Postleitzahl, Wohnort, Geburtsdatum, Geschlecht, email, Benutzername, Passwort)
VALUES ('$Nachname', '$Vorname', '$Straße', '$Hnummer', '$PLZ', '$Wohnort', '$Datum', '$Geschlecht', '$email', '$Ben', '$Pass')";
mysqli_query($db, $insert);
if($insert == true)
{
echo "Eintrag war erfolgreich";
}
else
{
echo "Fehler beim Speichern";
}
mysqli_close($db);
?>
</body>
</html>
Hallo und guten Abend,
Wenn ich in die Felder etwas eingebe, dann passiert überhaupt nichts, wenn ich auf den submit button tippe, genauso wie wenn ich auf den reset button tippe
Was soll denn passieren?
So, wie das aussieht, willst Du Formulardaten und nicht Formulare speichern?
Du hast leider grundlegende Sicherheitsaspekte missachtet. Deine Datenbank ist gefährdet.
Bevor Du Fremddaten über eine Textschnittstelle in eine Datenbank schreibst, müssen die Daten behandelt (escaped) werden.
Hierzu gibt es einen Artikel von Dedlfix im Wiki
http://wiki.selfhtml.org/wiki/Kontextwechsel
Grüße
TS
Ist dringend, da ich es für die mündliche Prüfung benötige
Bei deiner Prüfung sollen eigentlich deine eigenen Kenntnisse zum Fach geprüft werden, nicht, wie gut du im Internet nach Leuten suchen kannst, die deine gerade anstehenden Wissenslücken stopfen, damit du besser dastehst, als es dir zusteht.
Angesichts der wenig sagenden Fehlerbeschreibung Marke "funzt nicht" hast dir offenbar nicht einmal das bisschen Mühe gegeben, dem Problem selbst auf den Grund zu gehen. Nein, lieber einfach einen Haufen Code hier reinkippen, irgendwer wird's schon richten.
Oder fehlt dir sogar das Wissen für eine Fehlersuche? Dann wird deine Prüfungsnote zu Recht genau so ausfallen, wie du es wohl befürchtest.
Der Code ist, davon abgesehen, eh mangelhaft.
<body text="#000000" bgcolor="#FFFF80" link="#FF0000" alink="#FF0000" vlink="#FF0000">
<table width="50%" border="0" cellpadding="5" cellspacing="2" align="center">
Diese Attribute sind überflüssig. Warum benutzt du kein CSS?
$db= mysqli_connect("localhost","root","","Kommunikationsplattform")
Konten mit dem Namen root sind für Kernverwaltungsaufgaben vorgesehen, nicht für die allgemeine Nutzung.
$Nachname= $_POST['Nachname'];
$insert="INSERT INTO person (Name, Vorname, Straße, Hausnummer, Postleitzahl, Wohnort, Geburtsdatum, Geschlecht, email, Benutzername, Passwort)
VALUES ('$Nachname', '$Vorname', '$Straße', '$Hnummer', '$PLZ', '$Wohnort', '$Datum', '$Geschlecht', '$email', '$Ben', '$Pass')";
Von außen kommende Daten ungefiltert weiterzugeben, ist das Dümmste, was du mit ihnen machen kannst.
mysqli_query($db, $insert);
if($insert == true)
Welchen Wert hast du $insert zugwiesen? Ist dieser Vergleich sinnvoll?
else { echo "Fehler beim Speichern"; }
Im Fehlerfall "Fehler beim Speichern" an den Browser auszugeben, ist zwar richtig, denn interne Details gehen den fremden Besucher nichts an, aber was kannst du als Betreiber mit so einer Meldung anfangen? Nichts, genau. Wo ist deine Verarbeitung der Fehlerdaten, die MySQL/PHP dir zur Verfügung stellen?
Könnte mir bitte einer helfen?
Ja.
Wenn ich in die Felder etwas eingebe, dann passiert überhaupt nichts, wenn ich auf den submit button tippe, genauso wie wenn ich auf den reset button tippe
Was sollte denn passieren? Sollte eine Fehlermeldung kommen?
Du möchtest Formulardaten senden. Du weisst, dass die zwischen <form> und </form> gehören. Dein Sendeknopf steht aber ausserhalb. Was also sollte der senden?
Tipp für die Fehlersuche: Kontrolliere, wo die Verarbeitung vorbeikomt mit
echo "Punkt 1";
...
echo "Punkt 2";
Linuchs
Linuchs