Ik ben sinds 2 jaar weer een beetje begonnen met PHP en loop nu vast.
Ik heb een login en upload systeem gemaakt (dit werkt).
Alleen nu bij het uitlezen kom ik er niet helemaal aan uit.
Nu heb ik bij de image slider zelf een getal aangegeven:
$opdracht = "SELECT * FROM portfolio_image WHERE portfolio_ID = '17' order by image";
Maar eigenlijk moet deze variabel zijn en worden doorgegeven door de thumbs daaronder. Nu weet ik alleen niet hoe ik dit moet doen. In de adresbalk geeft hij al wel het portfolio_ID mee wat bij de thumb hoort. Verder kom ik even niet.
Zou iemand mij hiermee kunnen helpen?
Nou, dat je niet zomaar een variabele in een query plaatst, maar dat je eerst even controleert of die variabele ook daadwerkelijk is wat jij verwacht. En dat je mysql injection tegengaat.
Aha bedankt, zover ben ik dus nog nooit gekomen...
Maar ik zal eens gaan kijken of ik dat ga snappen.
Heb net wat opgezocht op internet en lijkt me nog redelijk ingewikkeld.
Maar in ieder geval bedankt voor de tip!
Ik ga ermee aan de slag.
En als het toch een integer is (wat een id normaal gesproken is en in je voorbeeld ook zo is), dan moet je zorgen dat dat een integer is. Ten eerste dus de enkele quotes weglaten uit je query, die zijn alleen nodig voor strings, niet voor integers. Daarnaast je user input typecasten naar een string. Daarmee weet je zeker dat het in het juiste formaat is en dat je query geen probleem gaat krijgen en dat er geen sql injectie op dat punt mogelijk is. Dus:
<?php
$opdracht = "SELECT *
FROM portfolio_image
WHERE portfolio_ID = ".intval($_GET['portfolio_ID'])."
order by image";
?>