SWULP skrev:
> <form method="post">
> <input type="int" name="sletvarenr">
Der er ikke nogen <input type="int">. Brug i stedet
<input type="text"...>.
> strQuery= "SELECT * FROM produktsortiment WHERE varenr=
> Request.Form("sletvarenr")"
Du kan ikke bare sætte din Request.Form ind i strengvariablen. Du
er nødt til at sammensætte strQuery af flere tekststykker - hvor et
tekststykke enten kan være markeret ved dobbelte anførselstegn
eller gemt i en variabel. Prøv med:
strQuery = "SELECT * FROM produktsortiment WHERE varenr=" & _
Request.Form("sletvarenr")
Du bør i øvrigt kontrollere indholdet af Request.Form("sletvarenr")
inden du sender det til databasen. Dels for at undgå fejl og dels
for at undgå misbrug. Forestil dig fx effekten af følgende værdier
af sletvarenr: "23-45" [1], "11 og 24" [2], "0; DELETE * FROM
produktsortiment" [3]
Noter:
======
[1] Opfattes som et minusstykke og svarer derfor til værdien -22
[2] Værdien er ikke numerisk og Access vil derfor returnere en
fejlmeddelelse
[3] Bevidst angreb - udfører en helt ny sætning efter den sætning du har
angivet. Det kan kun udføres hvis en bruger kan gætte et af dine
tabelnavne, og samtidig regne ud hvordan den sætning du allerede
bruger skal afsluttes korrekt - men hvis det lykkes er der i
princippet ingen grænser for hvor mange skader en misbruger kan
anrette. Det kan godt betale sig at sikre sig mod den slags.
--
Jens Gyldenkærne Clausen
MF (medlem af FIDUSO -
www.fiduso.dk)
I ovenstående tekst benyttes nyt komma.