[PHP] mysql_real_escape_string werkt niet

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • me1299
  • Registratie: Maart 2000
  • Laatst online: 00:01

me1299

$ondertitel

Topicstarter
Code:

PHP:
1
$new_picture = mysql_real_escape_string(maakThumb("tmp", $max_width, $max_height, 80));


Vervolgens krijg ik een mysql error:

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 'UDPATE project_fotos SET foto='ÿØÿà\0JFIF\0\0\0\0\0\0ÿþ\0;CREATO' at line 1

maakThumb verkleind het plaatje en output een string met het nieuwe plaatje. Om een duistere reden worden quotes niet allemaal goed escaped.

Iemand?

Het maakt eigenlijk niet uit wat je bewuste geest doet, omdat je onderbewuste automatisch precies dat doet wat het moet doen


Acties:
  • 0 Henk 'm!

Verwijderd

Volgens mij moet je de foutmelding goed lezen... maakThumb doet schijnbaar meer dan alleen een string outputten... er zit bijvoorbeeld een complete SQL query in de output...

Acties:
  • 0 Henk 'm!

  • mithras
  • Registratie: Maart 2003
  • Niet online
Wat probeer je precies te escapen? Op een blob field hoef je geen escape toe te passen, dat geldt alleen voor user-input strings :)

Acties:
  • 0 Henk 'm!

  • me1299
  • Registratie: Maart 2000
  • Laatst online: 00:01

me1299

$ondertitel

Topicstarter
Verwijderd schreef op maandag 14 december 2009 @ 15:31:
Volgens mij moet je de foutmelding goed lezen... maakThumb doet schijnbaar meer dan alleen een string outputten... er zit bijvoorbeeld een complete SQL query in de output...
Nou nee ik maak een query met de output van die functie.

PHP:
1
2
3
4
5
6
7
8
9
10
    $new_picture = mysql_real_escape_string(maakThumb("tmp", $max_width, $max_height, 80));

    $query = "UDPATE project_fotos
                SET
                    foto='{$new_picture}'
                WHERE
                    pkProjectFotoID=1";


    mysql_query($query) or die(mysql_error());


Als ik de funtie direct print krijg ik keurig een plaatje dus daar ligt het niet aan. De situatie is gewoon een string die blijkbaar niet goed escaped wordt door mysql_real_escape_string

Het maakt eigenlijk niet uit wat je bewuste geest doet, omdat je onderbewuste automatisch precies dat doet wat het moet doen


Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 01:33

MueR

Admin Tweakers Discord

is niet lief

Stuur je toevallig ook headers mee in die maakThumb functie? Zo ja, probeer het eens zonder die headers.

Anyone who gets in between me and my morning coffee should be insecure.


Acties:
  • 0 Henk 'm!

  • me1299
  • Registratie: Maart 2000
  • Laatst online: 00:01

me1299

$ondertitel

Topicstarter
MueR schreef op maandag 14 december 2009 @ 15:34:
Stuur je toevallig ook headers mee in die maakThumb functie? Zo ja, probeer het eens zonder die headers.
Nope de functie stuurt geen header mee, doet eigenlijk niet veel meer dan een imagecopyresampled en wat checks.

Het maakt eigenlijk niet uit wat je bewuste geest doet, omdat je onderbewuste automatisch precies dat doet wat het moet doen


Acties:
  • 0 Henk 'm!

  • frankivo
  • Registratie: Januari 2002
  • Laatst online: 02-06 13:53
code:
1
foto='{$new_picture}'


doe je dan niet dubbel escapen?

iRacing Profiel


Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 01:33

MueR

Admin Tweakers Discord

is niet lief

Geef de complete query eens.
Nee, de {$var} wordt voornamelijk gebruikt voor het aanspreken van arrays/objects binnen een string, maar het kan altijd. Doet verder niks aan escaping

[ Voor 86% gewijzigd door MueR op 14-12-2009 15:39 ]

Anyone who gets in between me and my morning coffee should be insecure.


Acties:
  • 0 Henk 'm!

  • pedorus
  • Registratie: Januari 2008
  • Niet online
Wat is een UDPATE ? ;)

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 17-09 14:05

.oisyn

Moderator Devschuur®

Demotivational Speaker

Het lijkt me handig als je gewoon even de inhoud van maakThumb() hier post.
.edit: oh wacht nu snap ik 'm, je serialized het plaatje naar een string en wil dát in een database hebben.

[ Voor 42% gewijzigd door .oisyn op 14-12-2009 15:43 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • me1299
  • Registratie: Maart 2000
  • Laatst online: 00:01

me1299

$ondertitel

Topicstarter
MueR schreef op maandag 14 december 2009 @ 15:38:
Geef de complete query eens.

[...]

Nee, de {$var} wordt voornamelijk gebruikt voor het aanspreken van arrays/objects binnen een string, maar het kan altijd. Doet verder niks aan escaping
code:
1
UDPATE project_fotos SET foto='ÿØÿàJFIFÿþ;CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), quality = 80 ÿÛC   %# , #&')*)-0-(0%()(ÿÛC   (((((((((((((((((((((((((((((((((((((((((((((((((((ÿÀh"ÿÄ ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Ŝ’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ ÿĵw!1AQaq"2B‘¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Ŝ’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚâãäåæçèéêòóôõö÷øùúÿÚ ?ñåtHdepd.ço±à ¥};Í¹Õš|g¾zÒMîÇ”ÈûD™9…#XË2yï2ôç'š‚®Jnîo-Ô5ď(Qòuÿ®Ÿ5ÜA¥o¶mVs¸.I$Ž¿J¯k¦¬èø+,° él¡¸$rA –­µ;h,c€Ï#qØõÝ’GáT%º x—\6âÁ°#×5qt„Â’¹-ÆsŜKM2 &eác$c=y ÏÒ´°®XŽEf\õÍaŒŜv°Áô¢‹ ˜ÿÙ' WHERE pkProjectFotoID=1


En dan heb ik er nog een hoop uit geknipt qua binaire data anders werd het een beetje lang.. :+

Het maakt eigenlijk niet uit wat je bewuste geest doet, omdat je onderbewuste automatisch precies dat doet wat het moet doen


Acties:
  • 0 Henk 'm!

  • me1299
  • Registratie: Maart 2000
  • Laatst online: 00:01

me1299

$ondertitel

Topicstarter
Ah nee dat meen je niet :X Dat was de oplossing.

* me1299 beschaamd in hoekje gaat zitten.

De error die hier uit voorvloeid eindigd wel altijd op een quote daardoor dacht ik dat hij op een quote hing.

[ Voor 18% gewijzigd door me1299 op 14-12-2009 15:45 ]

Het maakt eigenlijk niet uit wat je bewuste geest doet, omdat je onderbewuste automatisch precies dat doet wat het moet doen


Acties:
  • 0 Henk 'm!

  • mithras
  • Registratie: Maart 2003
  • Niet online
1) pedorus in "[PHP] mysql_real_escape_string werkt niet"
2) mithras in "[PHP] mysql_real_escape_string werkt niet"

Oftwel: fix de spellingsfout in je query en kijk eens goed of je niet binaire data aan het returnen bent in je maakThumb() functie :)

Je bent er al uit dus :)

[ Voor 5% gewijzigd door mithras op 14-12-2009 15:45 ]


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 17-09 14:05

.oisyn

Moderator Devschuur®

Demotivational Speaker

mithras schreef op maandag 14 december 2009 @ 15:32:
Wat probeer je precies te escapen? Op een blob field hoef je geen escape toe te passen, dat geldt alleen voor user-input strings :)
Wat is dat nou voor onzin. Hoe ga jij binaire data dat tekens kan bevatten die mysql op een speciale manier behandelt (zoals ' en \) middels een inline query in een database stoppen dan?

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • mithras
  • Registratie: Maart 2003
  • Niet online
.oisyn schreef op maandag 14 december 2009 @ 15:47:
[...]

Wat is dat nou voor onzin. Hoe ga jij binaire data dat tekens kan bevatten die mysql op een speciale manier behandelt (zoals ' en \) middels een inline query in een database stoppen dan?
Woeps :X Dat is nogal een onzin statement eigenlijk, excuse. Ik gebruik louter prepared statements tegenwoordig, door alle geautomatiseerde tussenlagen vergeet je dat het in situaties toch best nodig is...

Acties:
  • 0 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
DeathKnight24 schreef op maandag 14 december 2009 @ 15:44:
[...]
Ah nee dat meen je niet :X Dat was de oplossing.

* Voutloos beschaamd in hoekje gaat zitten.

De error die hier uit voorvloeid eindigd wel altijd op een quote daardoor dacht ik dat hij op een quote hing.
Het gaat in 9 vd 10 gevallen om het begin van de error, dat is juist het punt waar mysql de weg kwijt raakt. B)

{signature}


Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 01:33

MueR

Admin Tweakers Discord

is niet lief

Zo'n tikfout waar je uren naar kan staren zonder het te zien. :+

Anyone who gets in between me and my morning coffee should be insecure.


Acties:
  • 0 Henk 'm!

  • cariolive23
  • Registratie: Januari 2007
  • Laatst online: 18-10-2024
MueR schreef op maandag 14 december 2009 @ 16:25:
[...]

Zo'n tikfout waar je uren naar kan staren zonder het te zien. :+
Je kunt het wel zien, althans in 9 van de 10 gevallen. De foutmelding begint bij het statement waar het fout gaat, waar de parser de kluts kwijt raakt. In dit geval bij "udpate" en niet bij de string waar de binaire data staat.

Er zijn uitzonderingen, maar die bevestigen de regel.
Pagina: 1