Fehler in PHP

08/15/2012 18:46 .Insane#1
Hey E*Pvpers,
ich habe ein PHP Script geschrieben, das allerdings nicht richtig funktioniert und ich den Fehler auch nicht finde.
Hier ist die PHP Datei:

Das Script erscheint korrekt, aber sobald ich auf "Gewicht eintragen" gehe, bringt er folgenden Fehler:
Code:
Ihr Gewicht konnte nicht eingetragen werden.

Bitte benutzen Sie das Formular aus dem User Panal.

Zurück zum Formular
Allerdings dürfte dieser Fehler garnicht vorliegen, da alle Felder vorhanden sind und ich auch in alle Felder etwas eingetragen habe.

Hoffe jemand kann mir da helfen.
Lg
08/15/2012 20:27 Mikesch01#2
Also wenn ich ehrlich bin, funktioniert das bei mir..natürlich mit Abänderung des Codes, da vieles bei mir nicht vorhanden ist.

Prüfe mal, welche Werte die POST-Angaben mittels echo nach dem Abschicken haben. Anscheinend sind diese bei dir diese nicht vollzählig vorhanden, da das isset der POST-Angaben den Fehler ja wirft.
08/15/2012 20:44 .Insane#3
Habe die Fehlerausgabe folgendermaßen geändert (Es sind noch Felder dazugekommen, aber das ist unrelevant):
Code:
if(count($errors) > 0){ 
             echo "Ihr Gewicht konnte nicht eingetragen werden.<br>\n".
                  "<br>\n";  
				  echo $_POST['Gewicht_2']." kg<br />";
				  echo $_POST['Groesse']." m<br />";
				  echo $_POST['Bauchumfang']." cm<br />";
				  echo $_POST['Gesaessumfang']." cm<br />";
				  echo $_POST['Age']."<br />";
			foreach($errors as $error) {
                 echo $error."<br>\n"; 
			}
             echo "<br>\n". 
                  "Zurück zum <a href=\"".$_SERVER['PHP_SELF']."\">Formular</a>\n";
        }
Ausgabe:
Code:
Ihr Gewicht konnte nicht eingetragen werden.

80 kg
1.83 m
95 cm
100 cm
19
Bitte benutzen Sie das Formular aus dem User Panal.

Zurück zum Formular
Somit werden die POST richtig übermittelt. Kann sich das vielleicht mal jemand über tv ansehen?
08/15/2012 20:47 Mikesch01#4
Zeig mal nun den geänderten kompletten Code bitte.
08/15/2012 20:50 .Insane#5
Neue PHP Datei:

Habe auch mal eine test.php erstellt ohne die Fehlerausgabe und überprüfung.
Das kommt beim abschicken:
Code:
INSERT INTO 
                           Gewicht 
                            (Nickname, 
                             Gewicht, 
                             Bauch,
                             Groesse,							 
							 Gesaessumfang,
							 Age,
							 Groe�e,
							 Eintragungsdatum
                            ) 
                    VALUES 
                            ('Benni',
                             '',
							 '',
							 '119',
							 '',
                             '',
                             CURDATE(), 
                            ) 
                   
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 20
test.php:
08/15/2012 20:53 Mikesch01#6
PHP Code:
 // Prüfen, ob alle Formularfelder vorhanden sind 
        
if(!isset($_POST['Gewicht_2'], 
                  
$_POST['Groeße'], //Umlaute nicht möglich, daher solltest du das hier auch auf $_POST['Groesse'] ändern!
                  
$_POST['Bauchumfang'])) 
Du musst natürlich alles abändern, wenn du schon was änderst ;)


PHP Code:
         $sql "INSERT INTO 
                           Gewicht 
                            (Nickname, 
                             Gewicht, 
                             Bauch,
                             Groesse,                             
                             Gesaessumfang,
                             Age,
                             Groeße,
                             Eintragungsdatum
                            ) 
                    VALUES 
                            ('"
.mysql_real_escape_string(trim($_SESSION['Nickname']))."',
                             '"
.mysql_real_escape_string(trim($_POST['Gewicht']))."',
                             '"
.mysql_real_escape_string(trim($_POST['Bauch']))."',
                             '"
.mysql_real_escape_string(trim($_POST['Gesaessumfang']))."',
                             '"
.mysql_real_escape_string(trim($_POST['Alter']))."',
                             '"
.mysql_real_escape_string(trim($_POST['Groeße']))."',
                             CURDATE(), 
                            ) 
                   "

Auch hier musst du die Spalte Groeße umbenennen auf Groesse! Sowohl im Script als auch in der Datenbank. Zudem hast du in der Angabe der Spalten 2 mal die gleiche Spalte mit unterschiedlichen Namen. Einmal mit Groesse und einmal mit Groeße..entfern auch hier Groeße
08/15/2012 20:55 .Insane#7
Fehler behoben.
Vielen Dank Mikesch01