Het is een string, maar dat werkte eerst wel. Alleen de samenstelling van $bericht is verandert...quote:Op dinsdag 23 mei 2006 18:34 schreef JeRa het volgende:
@LeeHarveyOswald
Userid is hopelijk toch geen string? Geen quotes eromheen dan
Verder kun je dat oplossen door ' bericht = \'' . addslashes($bericht) . '\' te gebruiken.
mysql_real_escape_stringquote:Op dinsdag 23 mei 2006 18:34 schreef JeRa het volgende:
@LeeHarveyOswald
Userid is hopelijk toch geen string? Geen quotes eromheen dan
Verder kun je dat oplossen door ' bericht = \'' . addslashes($bericht) . '\' te gebruiken.
beterquote:
is het niet dat magic quotes aan staan, en dat op bericht na alle gegevens ook al uit de databse worden gehaald, en dus niet dmv user veldquote:Op dinsdag 23 mei 2006 19:07 schreef DionysuZ het volgende:
dat is toch precies hoe sql injecties werken? als je een variabele $test = "bla' or '1'='1"; hebt die je gebruikt in een sql query: "SELECT * FROM test WHERE veld = '{$test}'"; dan heb je toch gewoon een succesvolle manier van sql injectie? addslashes dus
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 | php include("config.php"); //error_reporting(E_ALL); php $i = '0'; $sql = 'SELECT * FROM `occasions` ORDER BY `ID` ASC'; $result = mysql_query($sql); while ($row = mysql_fetch_array($result)) { if($i / 2 == round($i / 2)) { $class = 'occasions_wrapper_even'; } else { $class = 'occasions_wrapper_oneven'; } $specificaties = nl2br($row['specificaties']); $specificaties = nl2br($row['specificaties']); $occasions = $occasions." <div class='occasions_wrapper'> <table> <tr> <td colspan='4' onClick='showEigenschappen(".$row[id].")'>Meer info</td> </tr> <tr> <td width='120' rowspan='2' ><img src='thumbs/".$row[foto]."' > <img src='thumbs/".$row[foto]."' width='50px' height='50px' > <img src='thumbs/".$row[foto]."' width='50px' height='50px' ></td> <td class='occasions_info'> Merk: <br /> Type: <br /> Kilometerstand: <br /> Vraagprijs: <br /> </td> <td class='occasions_inhoud'> $merk <br /> ".$row['type']." <br /> ".$row['kilometerstand']." <br /> € <font class='prijs'>".$row['vraagprijs'].",-</font> <br /> </td> <td class='occasions_info' valign='top'> Kleur: <br /> Brandstof: <br /> Bouwjaar: <br /> </td> <td class='occasions_inhoud'> ".$row['kleur']." <br /> ".$row['brandstof']." <br /> ".$row['bouwjaar']." <br /> </td> </tr> <tr> <td colspan='4' align='left' valign='top'><div class='specs_hidden' id='occasion$i' ><br /><p><b>Eigenschappen:</b></p><p>$specificaties</p></div></td> </tr> <tr> <td colspan='4'>bewerken | verwijderen | foto-toevoegen</td> </tr> </table> </div> <br /> "; $i++; } php $dag = date(D); $body = " <div class='MAIN_WRAPPER'> <div class='TOP'></div> <div class='TOP_SPLITTER'></div> <div class='MAIN'> <div class='TOP_CONTENT'></div> <div class='CONTENT'> <div class='CONTENT_TITEL'><p> </p><p><img src='site_images/plus.gif' alt=''/> occasion overzicht</p></div> <div class='CONTENT_TEXT'> $occasions </div> <div class='CONTENT_BOTTOM'>blaap.nl</div> <p> </p> </div> </div> <div class='BOTTOM'></div> </div> "; <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Untitled Document</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <link href="sessie.css" type="text/css" rel="stylesheet" /> <script language="javascript"> var i = 0; function showEigenschappen(nummer) { document.getElementById('occasion'+nummer).display = 'block'; } </script> </head> <body> php echo"$body"; </body> </html> ?> |
Ook hier weer, als je een écht complete oplossing wilt dan kun je beter met prepared statements werkenquote:
1 2 3 4 5 6 7 8 9 | $db = new PDO('mysql:host=server;dbname=database', 'user', 'pw'); $query = 'SELECT COUNT(id) AS num FROM tabel WHERE bericht = :bericht'; $stmt = $db->prepare($sql); $stmt->bindParam(':bericht', $bericht); $stmt->execute(); ?> |
'Je mag ook berichten met inhoud plaatsen hoor <img src = 'emoticons/tongue.gif'> 'quote:Op dinsdag 23 mei 2006 18:32 schreef LeeHarveyOswald het volgende:
Ik zit weer eens met een probleem...![]()
de volgende query levert problemen op:
[ code verwijderd ]
Iemand een idee wat er mis gaat? Tq:)
Dit deel heb ik nu werkend, alleen nu krijg ik:quote:Op dinsdag 23 mei 2006 19:47 schreef CraZaay het volgende:
[..]
'Je mag ook berichten met inhoud plaatsen hoor <img src = 'emoticons/tongue.gif'> '
Wat dacht je van het escapen van de single quotes in je string?
1 2 3 4 5 6 7 8 9 10 11 12 13 | $sql_query = "SELECT bericht FROM slowchat WHERE userid={$MemCookID} and bericht = {$bericht} and datumtijd >={$uurnu} "; $result = mysql_query($sql_query); if(mysql_num_rows($result) > 0) { // AFBREKEN! Echo "Anti Flood! je kan niet snel achter elkaar 2x hetzelfde bericht plaatsen! "; } ?> |
Waar precies?quote:Op dinsdag 23 mei 2006 19:59 schreef JeRa het volgende:
LHO, je moet nog quotes om je {$bericht} heen zetten
quote:Op dinsdag 23 mei 2006 20:07 schreef LeeHarveyOswald het volgende:
[..]
Waar precies?![]()
In mn vorige post staan ze nl. al...
1 |
1 |
Dat ziet er wel flink omslachtig uitquote:Op dinsdag 23 mei 2006 19:47 schreef JeRa het volgende:
[..]
Ook hier weer, als je een écht complete oplossing wilt dan kun je beter met prepared statements werken
[ code verwijderd ]
Dit houdt rekening met dat $bericht een string is en escapet de string, afhankelijk van de gebruikte connection character set met de MySQL-database
En nee, PDO is niet altijd beschikbaar(maar sinds PHP5 wel, mits geladen)
aangepast, maakt geen verschil. Result blijft trouwens leeg..quote:Op dinsdag 23 mei 2006 20:16 schreef JeRa het volgende:
[..]
[ code verwijderd ]
Dáár
[ code verwijderd ]
Is het ook wel op het eerste gezicht. Maar het zorgt ervoor dat je nooit ende nimmer meer SQL injections kunt creëerenquote:
Qua marktverhouding ligt 5 inmiddels rond de 30% en groeiende toch?quote:Op dinsdag 23 mei 2006 18:44 schreef JeRa het volgende:
[..]
Dát is natuurlijk helemaal waar. Ikzelf werk alleen in PHP5 en draai zo nu en dan PHP-cvs, dan denk je daar niet eens meer over na
Als je een query naar de server stuurt moet dat via de MySQL-backend voor PHP via een verbinding naar de MySQL-server, alwaar hij ingelezen, verwerkt en geoptimaliseert moet wordenquote:Op dinsdag 23 mei 2006 20:59 schreef fokME2 het volgende:
@JeRa hoe bedoel je al het parsewerk maar één keer uit te laten voeren?
Klopt ongeveer ja, een hoop webhosters zweren nog bij PHP4 omdat de klanten dat vaak ook nog doenquote:Op dinsdag 23 mei 2006 20:59 schreef Roönaän het volgende:
[..]
Qua marktverhouding ligt 5 inmiddels rond de 30% en groeiende toch?
Mogelijkerwijs ook omdat de "extra software" die ze aanbieden php4 zijn; plesk, phpnuke, phpbb, mambo. Maar dat zal met de tijd ook wel veranderen.quote:Op dinsdag 23 mei 2006 21:07 schreef JeRa het volgende:
Klopt ongeveer ja, een hoop webhosters zweren nog bij PHP4 omdat de klanten dat vaak ook nog doen
Ik wacht even af wat mijn hoster meldt over PHP5 support.quote:Op dinsdag 23 mei 2006 21:07 schreef JeRa het volgende:
[..]
Klopt ongeveer ja, een hoop webhosters zweren nog bij PHP4 omdat de klanten dat vaak ook nog doen
Ze kunnen best php4 en php5 naast elkaar draaien. En daarbij moeten ze geen phpbb aanbieden.quote:Op dinsdag 23 mei 2006 21:11 schreef Roönaän het volgende:
[..]
Mogelijkerwijs ook omdat de "extra software" die ze aanbieden php4 zijn; plesk, phpnuke, phpbb, mambo. Maar dat zal met de tijd ook wel veranderen.
Dat klinkt interessantquote:Het gaat leuk worden als zend framework geïntegreerd wordt bij de hosters en dat ik bij een webhoster via plesk mijn emailadres+gsm op kan geven waarnaar zend framework sms't en mailt over trage queries en stervende websites
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |