html code inmysql database krijgen via script

Status
Niet open voor verdere reacties.

lefty999

Gebruiker
Lid geworden
5 jul 2002
Berichten
913
dag beste

ik zou graag html code in het mysql database kunnen zetten,
mijn script werkt met gewoon tekst maar als ik html code wil plaatsen dan krijg ik volgende foutmelding.

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://www.***************.com' marginwidth=0 marginheight=0 vsp' at line 1

mijn tabel waar dit inkomt heeft
type TEXT
collatie utf8_general_ci
null : ja
standaardwaarde : NULL

iemand die weet hoe ik dit oplos?

met vriendelijke groeten
lefty999
 
Als je HTML op wilt slaan, moet je opletten dat bepaalde tekens niet zomaar opgeslagen kunnen worden.

De beste oplossing is om alles door htmlentities heen te halen.

Die retourneerd een string die je wel in de database kunt opslaan.
Je kunt em met html_entity_decode weer terugvormen naar HTML.
 
Als je HTML op wilt slaan, moet je opletten dat bepaalde tekens niet zomaar opgeslagen kunnen worden.

De beste oplossing is om alles door htmlentities heen te halen.

Die retourneerd een string die je wel in de database kunt opslaan.
Je kunt em met html_entity_decode weer terugvormen naar HTML.
ik heb de htmlentities geprobeert maar nog lukt het niet.
dit is de error die ik krijg
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://www.777seo.com/seo.php?username=wilmpie' marginwidth=0 marginheight=0 vsp' at line 1
dit is mijn script
PHP:
<?php
include('config.php');
if(!isset($_SESSION['gebruiker'])) {
	header("Location: login.php");
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title><? echo $cfg['site'];	?> - members pagina</title>
<meta name="keywords" content="" />
<meta name="description" content="" />
<link href="default.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="header">
	<h1></h1>
	<h2></h2>
<? include "header.php"; ?>
</div><div id="menu">
	
	</div>
<div id="content">
  <div id="columnA">

 <p>Welcome, 
    <?=$_SESSION['gebruiker']
  ?>
  <?
    $gebruiker = $_SESSION['gebruiker'];
 $sql = "SELECT * FROM leden WHERE gebruikersnaam='$gebruiker'"; 
    $res = mysql_query($sql); 

while ($row = mysql_fetch_array($res)) 
   { 
       $id = htmlentities($row['id']); 
	   $credits = htmlentities($row['credits']);
	   $bannercode=$row["banner"];
   } 

if (empty($bannercode)) {
$bannercode = "ENTER YOUR BANNERCODE HERE ";
}

?>
    <p>
<p>edit your code :       
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
  <p>Your banner code </p>
  <p>
    <textarea name="naam" cols="50%" rows="15%"><? echo "$bannercode"; ?></textarea>
    <br>
    <br>
    <input name="send" type="submit" value="Edit">
  </p>
</form>
    <p>
	 <?php
if(isset($_POST['send']))
{
$bannercode = $_POST['naam'];
$titel = $_POST['titel'];

mysql_query("UPDATE leden SET banner='htmlentities($bannercode)' WHERE id='$id'") 
or die(mysql_error()); 

echo "De text is aangepast";
}
?>

<p> 
  </div>
	<div id="columnB">
<? include "menu.php"; ?>		</div>
	<div style="clear: both;">&nbsp;</div>
</div>
<div id="footer">
<? include "footer.php"; ?></div>
</body>
</html>
 
Je moet htmlentities niet in de string zetten, maar van tevoren eroverheen halen...

Daarnaast denk ik dat je HTML het enkele aanhalingsteken bevat; dit is een structuurteken van SQL dat je niet zomaar op kunt slaan. Als je die veilig in je database wilt zetten, heb je ook een escape functie nodig.

strings escapen.

PHP:
$sbanner_safe = mysql_real_escape_string  ( htmlentities($bannercode) );

"UPDATE leden SET banner='$banner_safe' WHERE id='$id'"
 
htmlentities() over een string vóór het in de database gaat? :shocked:

mysql_real_escape_string() zou voldoende moeten zijn.
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan