Hallo H-D Just
ich bekomme immer diese Fehlermeldung:
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 ','http://gojust.de', 'GoJust', 'Hans-Dieter Just','info@gojust.de', '', '2', '',' at line 3
Dass es nicht besonders toll ist, hier tonnenweise unrelevanten, noch dazu unformatierten Code zu schreiben, haben dir ja schon andere angekreidet (kann mir aber den nochmaligen Hinweis nicht verkneifen)
Zum eigentlichen Problem:
Der Fehler scheint ja in diesem Ausschnitt zu liegen (zumindest, wenn ich da jetzt richtig durchblicke):
/*
$query = "INSERT INTO area(id,x1,y1,x2,y2,url,title,name,email,amount,img_name,img_type,img_filesize, img_content,cnf_check) ".
"VALUES ('$id',$x1,$y1,$x2,$y2,'$url','$title', '$name','$email','$amount','$fileName','$fileType','$fileSize','',2)";
echo "Q: " . $query;
*/
$query = "INSERT INTO
area
(x1
,y1
,x2
,y2
,url
,title
,name
,amount
,cnf\_check
,image\_id
,img\_name
,img\_type
,img\_filesize
,img\_content
,paypal\_txn\_id
,clicks
)VALUES ($x1,$y1,$x2,$y2,'$url', '$title', '$name','$email', '$amount', '2', '', '$fileName', '$fileType', '$fileSize', '', '', '0')";
Es wäre sinnvoll, sich den genauen Querystring nochmals ausgeben zu lassen (wie du es ja in dem auskommentierten Stück oben getan hast), also etwa so:
$query = "INSERT INTO `area` ( `x1` , `y1` , `x2` , `y2` , `url` , `title` , `name` , `email` , `amount` , `cnf_check` , `image_id` , `img_name` , `img_type` , `img_filesize` , `img_content` , `paypal_txn_id` , `clicks` )
VALUES ($x1,$y1,$x2,$y2,'$url', '$title', '$name','$email', '$amount', '2', '', '$fileName', '$fileType', '$fileSize', '', '', '0')";
echo $query."<br />";
Wie du Code hier im Forum formatieren kannst steht übrigens in der Hilfe zum Forum
Zur Ursache kann ich jetzt erstmal nur raten, mir ist aber aufgefallen, dass du jede Menge Variablen ungeprüft in die Ausgabe einbaust, was eventuell für den Fehler verantwortlich ist - falls die Daten entsprechend "bösartig" sind - aber auch ansonsten auf jeden Fall ein Sicherheitsrisiko darstellt. mysql_real_escape_string() ist dein Freund.
Außerdem fügst du die Variablen $x1,$y1,$x2,$y2 ohne Anführungszeichen ein, was nur korrekt ist, falls es sich um nummerische Felder handelt, was ebenfalls geprüft werden müßte.
Im Gegensatz dazu fügst du hinten '2' und '0' ein, wo die Anführungszeichen - wahrscheinlich - unnötig sind, falls es sich nicht um Felder vom Typ VARCHAR, CHAR oder TEXT handelt. Wenn du wirklich '2' und nicht 2 einfügen möchtest und weißt, was du tust, vergiss diese Anmerkung und entschuldige die Kritik.
Liebe Grüße mbr