hallo,
ik gebruik mysql alleen ik als ik doe
"DELETE FROM advertenties WHERE ID = 9"
dan werkt het als ik
ipv 9 neerzet $ID en daarboven $ID = 9
dan werkt het ook alleen als ik dat er niet boven zet en dan in de adresbalk typ
?ID=9
dan werkt het niet wat doe ik fout?
bij SELECT doet hij het wel op deze manier en bij UPDATE niet.
Superglobals....

Een jaar of 6, 7 geleden kwam men er achter dat dit uitermate onveilig was, iedere idioot met een keyboard kon een php-website hacken!

Gebruik $_GET['id'] en gebruik de functie mysql_real_escape_string() om deze input te beveiligen. Zie www.php.net hoe je dit gebruikt.
@Frank

In het geval van de id, zoals die hier wordt gebruikt gaat het om een getal. Dus je kan gewoon intval($_GET['id']) gebruiken.
sorry,
zoals jullie waarschijnijk al merkten ben ik nog niet zo goed in PHP, waar moet ik dat ($_GET['id']) dan zetten en waar haalt hij de ID dan vandaan als hij hem uit de adresbalk haalt krijg je weer hetzelfde effect als eerst lijkt mij?
<?php

$id = $_GET['id']; // niet echt netjes, maar even als voorbeeld

$query = "DELETE FROM advertenties WHERE ID=".$id."";

//vervolgens hier je verder afwerking
?>
Robert schreef op 19.03.2007 17:17
@Frank

In het geval van de id, zoals die hier wordt gebruikt gaat het om een getal. Dus je kan gewoon intval($_GET['id']) gebruiken.
Dat weet jij en weet ik, maar het is voor een beginner een stuk eenvoudiger om gewoon alles met mysql_real_escape_string() te beveiligen. Dan kan er nooit meer wat mis gaan.

En wil je het nog eenvoudiger hebben, gebruik dan PDO. Dat is een database classe (PHP 5 vereist) die er zelf voor zorgt dat er geen SQL-injection meer kan plaatsvinden. Hoef jij er ook niet meer aan te denken.
ik heb gedaan wat jurgen zei maar nou krijg ik de 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 '' at line 1

ps ik link er dus heen verwijder.php?ID=8
id != ID

Reageren