mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Do 25.04.2024 21:49 Benutzername: Passwort: Auto-Login

Thema: Kein Eintrag in DB (Daten aus Formular) vom 07.06.2006


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> Kein Eintrag in DB (Daten aus Formular)
Autor Nachricht
Flo-N
Threadersteller

Dabei seit: 07.06.2006
Ort: Magdeburg
Alter: 38
Geschlecht: Männlich
Verfasst Mi 07.06.2006 22:36
Titel

Kein Eintrag in DB (Daten aus Formular)

Antworten mit Zitat Zum Seitenanfang

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
  View user's profile Private Nachricht senden
Skyw4lker

Dabei seit: 30.08.2004
Ort: Bergisch Gladbach
Alter: 43
Geschlecht: Männlich
Verfasst Do 08.06.2006 06:40
Titel

Antworten mit Zitat Zum Seitenanfang

als erstes würde ich mal ein
Code:
echo("foo");

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
  View user's profile Private Nachricht senden
Anzeige
Anzeige
dastef

Dabei seit: 03.11.2003
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Do 08.06.2006 08:48
Titel

Antworten mit Zitat Zum Seitenanfang

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 ..
  View user's profile Private Nachricht senden
m0rb

Dabei seit: 30.09.2004
Ort: Fürth
Alter: 38
Geschlecht: Männlich
Verfasst Do 08.06.2006 09:47
Titel

Antworten mit Zitat Zum Seitenanfang

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
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Flo-N
Threadersteller

Dabei seit: 07.06.2006
Ort: Magdeburg
Alter: 38
Geschlecht: Männlich
Verfasst Do 08.06.2006 12:52
Titel

Antworten mit Zitat Zum Seitenanfang

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.
  View user's profile Private Nachricht senden
dastef

Dabei seit: 03.11.2003
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Do 08.06.2006 15:46
Titel

Antworten mit Zitat Zum Seitenanfang

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 Lächel

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.
  View user's profile Private Nachricht senden
Flo-N
Threadersteller

Dabei seit: 07.06.2006
Ort: Magdeburg
Alter: 38
Geschlecht: Männlich
Verfasst Fr 09.06.2006 21:06
Titel

Antworten mit Zitat Zum Seitenanfang

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
  View user's profile Private Nachricht senden
m0rb

Dabei seit: 30.09.2004
Ort: Fürth
Alter: 38
Geschlecht: Männlich
Verfasst Sa 10.06.2006 00:31
Titel

Antworten mit Zitat Zum Seitenanfang

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 Lächel


Ok, das nächste mal halt ich mich zurück Grins Denke nur, dass er als "Anfänger" auch mit der Fehlermeldung hätte recht wenig anfangen können Lächel

Gruß
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
 
Ähnliche Themen Daten aus Formular versenden
PDF-Formular Versand/Wie erhalte ich die Daten?
[PHP/MySQL] Daten aus der Datenbank in ein Formular laden
Fehlersuche MySQL mit PHP-Formular Daten eintragen
suchmaschinen-eintrag
[PHP] Verfallsdatum für Datenbank-Eintrag
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.