Autor |
Nachricht |
Flo-N
Threadersteller
Dabei seit: 07.06.2006
Ort: Magdeburg
Alter: 38
Geschlecht:
|
Verfasst Mi 07.06.2006 22:36
Titel Kein Eintrag in DB (Daten aus Formular) |
|
|
Good Evening. Ich bin gerade dabei an meiner Website zu basteln. Nun bin ich schon am Anfang auf Probleme gestoßen.
Ich habe ein Formular (in diesem Fall "register.php). Von diesem Formular werden Daten an "register_check.php" geschickt. Dort habe ich dann diesen Quelltext (Loginname und Passwort sind selbstverständlich im Original richtig eingetragen).
Code: |
<?php
/*Pflichtfelder*/
$username=$HTTP_POST_VARS['username'];
$mail=$HTTP_POST_VARS['mail'];
$city=$HTTP_POST_VARS['city'];
$pass=$HTTP_POST_VARS['pass'];
$passcheck=$HTTP_POST_VARS['passcheck'];
/*Profil-Informationen*/
$icq=$HTTP_POST_VARS['icq'];
$msn=$HTTP_POST_VARS['msn'];
$aim=$HTTP_POST_VARS['aim'];
$yahoo=$HTTP_POST_VARS['yahoo'];
$sex=$HTTP_POST_VARS['sex'];
$job=$HTTP_POST_VARS['job'];
$interests=$HTTP_POST_VARS['interests'];
$music=$HTTP_POST_VARS['music'];
$website=$HTTP_POST_VARS['website'];
/*Kontrolle ob alle Felder ausgefüllt sind*/
if($username=='') {
print ("<div class='regcheck'>Das Feld 'Benutzername' wurde nicht ausgefüllt!</div>");
}
if($mail=='') {
print ("<div class='regcheck'>Das Feld 'E-Mail Adresse' wurde nicht ausgefüllt!</div>");
}
if($city=='') {
print ("<div class='regcheck'>Das Feld 'Wohnort' wurde nicht ausgefüllt!</div>");
}
if($pass=='') {
print ("<div class='regcheck'>Das Feld 'Passwort' wurde nicht ausgefüllt!</div>");
}
if($passcheck=='') {
print ("<div class='regcheck'>Das Feld 'Passwort bestätigen' wurde nicht ausgefüllt!</div>");
}
/*Passwortvergleich*/
elseif ($pass==$passcheck) {
$db=mysql_connect("localhost","LoginName","Passwort");
mysql_select_db("usr_web161_1");
$entry="INSERT INTO master_userdata VALUES ('$username','$mail','$city','$pass','$icq','$msn','$aim','$yahoo','$sex','$job','$interests','$music','$website')";
mysql_query($entry);
mysql_close($db);
}
else {
print ("<div class='regcheck'>Das Passwort und dessen Bestätigung stimmen nicht überein.</div>");
}
?> |
Mein Problem ist: In der Datenbank werden keine Daten eingetragen. Es wird nach dem Submit-Klick aber auch kein Fehler angezeigt. Vielleicht hat sich ja im Quelltext nur ein kleiner Fehler eingeschlichen. Eventuell sind ihn ja jemand.
Gruß Flo
|
|
|
|
|
Skyw4lker
Dabei seit: 30.08.2004
Ort: Bergisch Gladbach
Alter: 43
Geschlecht:
|
Verfasst Do 08.06.2006 06:40
Titel
|
|
|
als erstes würde ich mal ein
in das else if statement, das den INSERT umgibt einfügen.
Nur um sicherzugehen, ob er da überhaupt hinkommt.
Falls nicht, mal $pass und $passcheck mit ausgeben und
schauen was drinsteht.
hat jetzt nicht unbedingt was mit dem aktuellen prob zu tun,
aber trimst du blanks vor und nach den eingaben in die Felder
weg? Weil sonst könnte jemand nur einen Whitespace eingeben
und dein Script würds nicht merken.
Sonst erst trim($foo) und dann mit strlen($foo)==0 checken
greetz Sky
|
|
|
|
|
Anzeige
|
|
|
dastef
Dabei seit: 03.11.2003
Ort: -
Alter: -
Geschlecht:
|
Verfasst Do 08.06.2006 08:48
Titel
|
|
|
mysql_error() ist der große Bruder von mysql_query() .. die zwei
haben sich ganz dolle gern .. und mögen auch während der ent-
wicklung nicht getrennt werden ..
|
|
|
|
|
m0rb
Dabei seit: 30.09.2004
Ort: Fürth
Alter: 38
Geschlecht:
|
Verfasst Do 08.06.2006 09:47
Titel
|
|
|
Moin,
wie dastef schon sagt, änder mal
Code: | mysql_query($entry); |
ab in
Code: | mysql_query($entry) OR die("MySQL-Fehler: ".mysql_error()); |
Außerdem würd ich beim insert auf jeden Fall die Feldnamen angeben
Also nicht so:
Code: | $entry="INSERT INTO master_userdata VALUES ('$username','$mail','$city','$pass','$icq','$msn','$aim','$yahoo','$sex','$job','$interests','$music','$website')"; |
Sondern in etwa so:
Code: |
$entry = "INSERT INTO tbl (feld1, feld2) VALUES ('".$feld1daten."', '".$feld2daten."');"
|
Falls das Teil öffentlich zugänglich ist, les dir auf jeden Fall das oder das hier durch.
Achja, $_HTTP_POST_VARS kannst getrost durch $_POST ersetzen...
Zuletzt bearbeitet von m0rb am Do 08.06.2006 09:57, insgesamt 1-mal bearbeitet
|
|
|
|
|
Flo-N
Threadersteller
Dabei seit: 07.06.2006
Ort: Magdeburg
Alter: 38
Geschlecht:
|
Verfasst Do 08.06.2006 12:52
Titel
|
|
|
Also bei der ganzen Sache hat sich nun folgendes Problem ergeben:
Code: | MySQL-Fehler: Column count doesn't match value count at row 1 |
Wo genau liegt das Problem? Kann es sein das dieser Fehler auftritt, weil ich in der Datenbank mehr Spalten habe, als von diesem Formular zugewiesen/übertragen werden? Quasi bekommen die letzen drei Spalten keine Daten von diesem Formular.
|
|
|
|
|
dastef
Dabei seit: 03.11.2003
Ort: -
Alter: -
Geschlecht:
|
Verfasst Do 08.06.2006 15:46
Titel
|
|
|
m0rb, eigentlich drücke ich mich meistens so aus, dass es ver-
ständlich ist .. und nicht nochmal erklärt werden muss .. ist jetzt
nicht bös gemeint, ich hab nur keine lust jedem immer genau
das "vorzuschreiben" was er hinpacken soll
Flo-N, die Feldermeldung sagt, dass die Anzahl der Werte nicht
mit den verfügbaren Feldern übereinstimmt. Wenn du nicht wie
von m0rb gesagt ein field - value paar hast ... dann musst du
in deinem insert einen wert für jede spalte in der daten-
bank angeben .. auch wenn's nur ein leerer string ist .. aber es
muss was da sein.
|
|
|
|
|
Flo-N
Threadersteller
Dabei seit: 07.06.2006
Ort: Magdeburg
Alter: 38
Geschlecht:
|
Verfasst Fr 09.06.2006 21:06
Titel
|
|
|
Ahhh Merci. Jetzt klappt es wunderbar.
Und danke m0rb für den Hinweis mit der SQL-Injektion. Hab mir das mal durchgelesen. Dann werd ich wohl mal noch einen Filter basteln müssen.
mfg Flo
|
|
|
|
|
m0rb
Dabei seit: 30.09.2004
Ort: Fürth
Alter: 38
Geschlecht:
|
Verfasst Sa 10.06.2006 00:31
Titel
|
|
|
dastef hat geschrieben: | m0rb, eigentlich drücke ich mich meistens so aus, dass es ver-
ständlich ist .. und nicht nochmal erklärt werden muss .. ist jetzt
nicht bös gemeint, ich hab nur keine lust jedem immer genau
das "vorzuschreiben" was er hinpacken soll |
Ok, das nächste mal halt ich mich zurück Denke nur, dass er als "Anfänger" auch mit der Fehlermeldung hätte recht wenig anfangen können
Gruß
|
|
|
|
|
|
|
|
Ähnliche Themen |
Daten aus Formular versenden
PDF-Formular Versand/Wie erhalte ich die Daten?
Fehlersuche MySQL mit PHP-Formular Daten eintragen
[PHP/MySQL] Daten aus der Datenbank in ein Formular laden
suchmaschinen-eintrag
[PHP] Verfallsdatum für Datenbank-Eintrag
|
|