mysql error bei html-Tag

Hi,

ich will html Tags mit PHP in die Mysql db packen allerdings gibt er mir dann 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 '<img src="http://Meineurl/Chat/smilies/format.gif" border="0" al' at line 1

Der Syntax ansich ist richtig denn wenn ich einen normalen Text eingebe klappt es.

Ein Freund von mir meinte es könnte irgentwie sein das ein Zeichen im HTML-Tag gleichzeitig ein Steuerzeichen in sql ist. Aber was mach ich jetzt.
 
Du musst auf die Anführungszeichen aufpassen! Ich könnte mir denken dass es daran liegt.

Wenn Du nämlich sowas hast: WHERE `text`="das "Haus" ist" , gibts nen fehler so nicht:
WHERE `text`='das "Haus" ist' !!
 
Das ist so eine Sache mit den Anführungszeichen ich glaube ich habe es aber richtig gemacht:

PHP:
$HTag = '<img src="http://www.meineurl.de/Chat/smilies/ ';
  $HTag .= "$file_name";  
  $HTag .= '" border="0" />';

Aber springt bereits ebi dem an
PHP:
 $HTag = "<br>";
 
hab ein bisschen rumprobiert jetzt siehts so aus:

PHP:
$handle1 = @mysql_connect($sqladress, $sqlroot,$sqlpw) OR die(mysql_error());
 mysql_select_db("$dbname",$handle1) OR die(mysql_error());  
  
$HTag = "<img src='http://www.meineurl.dnsdojo.org/Chat/smilies/$file_name' border='0' />";  //filename ist der datei name aus dem formular mittel input type="file"
  
  
$sqlbefehl1 = "INSERT INTO $tblformat (id, Tag, Ersatztag, Art)" . " VALUES ('', '$_POST[STag]','$HTag','Smilie')"; //$tblformat ist aus einer config datei ist aber auch ok

@mysql_query ($sqlbefehl1,$handle1) OR die (mysql_error());
mysql_close ($handle1);
 
Probier ganze mal so, hab Deinen Code ein wenig angepasst!
PHP:
<?php 
$handle1 = @mysql_connect($sqladress, $sqlroot,$sqlpw) OR die(mysql_error());
 mysql_select_db("$dbname",$handle1) OR die(mysql_error());  
  
$HTag = "<img src='http://www.meineurl.dnsdojo.org/Chat/smilies/".$file_name."' border='0' />";  
  
  
$sqlbefehl1 = "INSERT INTO $tblformat (Tag, Ersatztag, Art) VALUES ('".$_POST[STag]."','".$HTag."','Smilie')"; //$tblformat ist aus einer config datei ist aber auch ok

@mysql_query ($sqlbefehl1,$handle1) OR die (mysql_error());
mysql_close ($handle1); ?>
 
klappt auch nicht habs jetzt so bekommen:

PHP:
$HTag = '<img src="http://www.meinurl.dnsdojo.org/Chat/smilies/' . $file_name . '" border=" 0" />';

gibts da irgentwie ne regel wann mann doppelte und einfache Anführungszeichen benutzt.
edit: Jetzt kommen immer häufiger diese errors in anderen scripte die vorher funktionierten hab ich vll einen tiefliegenderen fehler in der db oder so??
 
<?php $HTag = '<img src="http://www.meinurl.dnsdojo.org/Chat/smilies/' . $file_name . '" border=" 0" />'; ?>

ich weiß nicht genau, in wie fern es in diesem code probleme gibt, aber ich mache das immer so:

PHP:
<?php
$pic = "<img src=\"http://www.meinurl.dnsdojo.org/Chat/smiles/".$file_name."\" border=\"0\">";
?>

Was willst´n genau über Xampp wissen?
 
immer diese leute welche nur immer an das gute im menschen denken.....weiterhin bringt die obige loesung von BasicAvid keine verbesserung bezueglich dem eigentlichen problem, da im $HTag immer noch ' vorhanden sind.

mein vorschlag (nicht getestet):
PHP:
<?php 
$handle1 = @mysql_connect($sqladress, $sqlroot,$sqlpw) OR die(mysql_error());
 mysql_select_db("$dbname",$handle1) OR die(mysql_error());  
  
$HTag = "<img src='http://www.meineurl.dnsdojo.org/Chat/smilies/".$file_name."' border='0' />";  
  
  
$sqlbefehl1 = "INSERT INTO $tblformat (Tag, Ersatztag, Art) VALUES ('". mysql_escape_string($_POST['STag'])."','". mysql_escape_string($HTag)."','Smilie');"; //$tblformat ist aus einer config datei ist aber auch ok

@mysql_query ($sqlbefehl1,$handle1) OR die (mysql_error());
mysql_close ($handle1); ?>


weiterhin muss man den key fuer den zugriff in einem array auch in ' setzen (ansonsten kommt ne 'notice' sofern man dies nicht abschaltet).

schlussendlich muesste man auch noch ueberpruefen ob nicht irgendwelches XSS (cross-site-scripting) zeugs in der uebergabe ist....mit javascript kann man da auch noch sehr viel boeses anstellen.
 
Zurück
Oben