[PHP/MYSQL] HTML tags invoegen in database - error

Pagina: 1
Acties:
  • 38 views sinds 30-01-2008

  • Cinner
  • Registratie: Januari 2004
  • Laatst online: 01-02 10:49
Ik heb een formulier waarvan de gegevens met PHP in een MYSQL database worden gezet. Er is echter 1 onderdeel van van het formulier dat voor een probleem zorgt: wanneer de HTML code van een image (<img>) naar de database moet worden geschreven, zegt hij dat er een fout zit in de syntax bij '../pics/work-progress.gif'>' - waar zit de fout?

<?php
$x_pic = "[img]'../pics/work-progress.gif'>"; ?> <SELECT[/img]
<OPTION VALUE="1">Publiceer</option>
<OPTION VALUE="<?php echo $x_pic ?>">On-hold</option>
</SELECT>

  • Tommetje
  • Registratie: Februari 2004
  • Laatst online: 19-11-2024
Ik zie op het eerste gezicht niet iets dat je fout doet. Is dit je hele code (lijkt me niet)? Post anders de rest eens (het relevante deel dan ;)) en wat is de precieze error die je krijgt :)?

Hoi!


  • Radiant
  • Registratie: Juli 2003
  • Niet online

Radiant

Certified MS Bob Administrator

Je moet je string escapen.. Ga daar maar eens op zoeken :)
Misschien ook een goed idee om eens wat te gaan lezen over SQL injection attacks.

  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 18:23
Waarschijnlijk gaat het mis met quotes in de query. Kijk eens naar de functie mysql_real_escape_string() of gewoon addslashes(). Dit blijft natuurlijk een gok zolang we de code waarin de query wordt opgesteld niet kunnen zien...

Regeren is vooruitschuiven


  • Cinner
  • Registratie: Januari 2004
  • Laatst online: 01-02 10:49
Pardon, hier is de query:

$add_all = "INSERT INTO $table values ('$status','$auteur','$cover')";

  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 07-05 20:00
Je hebt het over een SQL fout, maar waar is je query? Wat is de exacte fout die wordt gegeven? Wat heb je zoal zelf al geprobeerd? Op welke manier verstuur jij informatie naar je database, en zit die implementatie in elkaar? Zit daar nog een validatie controle omheen?

Kortom debuggen die handel. Overigens staat in de PW FAQ een heel verhaal over hoe je formdata en mysql, en ook hoe je moet debuggen.

Ik heb een vermoeden dat jij je string's niet goed hebt ge-escaped.

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Je doet 2 dingen "fout":

Als eerste gooi je html als argument in html, dat mag niet:

PHP:
1
2
3
4
5
6
7
<?php
$x_pic = "[img]'../pics/work-progress.gif'>";
?>
<SELECT[/img]
<OPTION VALUE="1">Publiceer</option>
<OPTION VALUE="<?php echo htmlentities($x_pic) ?>">On-hold</option>
</SELECT>


daarna je query: (ik neem aan dat die variabelen gehaald zijn uit $_POST of $_GET)
PHP:
1
$add_all = "INSERT INTO $table values ('".mysql_escape_string($status)."','".mysql_escape_string($auteur)."','".mysql_escape_string($cover)."')";

[ Voor 44% gewijzigd door Erkens op 16-04-2005 21:03 ]


  • Tommetje
  • Registratie: Februari 2004
  • Laatst online: 19-11-2024
Erkens schreef op zaterdag 16 april 2005 @ 21:03:
Je doet 2 dingen "fout":

Als eerste gooi je html als argument in html, dat mag niet:
offtopic:
Mijn god, dat ik dat niet gezien had :o

[ Voor 5% gewijzigd door Tommetje op 16-04-2005 21:05 ]

Hoi!


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Ok, escapen dus. :) Daar had je ook zelf makkelijk achter kunnen komen, want elke fatsoenlijke tutorial, en elk up-to-date boek legt het uit. Met bovenstaande reacties moet je er wel uit kunnen gaan komen.

Overigens is je topicstart ook erg mager; lees P&W FAQ - De "quickstart" dus even door.
Tommetje schreef op zaterdag 16 april 2005 @ 21:05:
offtopic:
Mijn god, dat ik dat niet gezien had :o
Als je alleen maar wat offtopics te melden hebt, wat sowieso niets met tech te maken heeft, dan kun je beter niet posten. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1

Dit topic is gesloten.