Nu vet jag inte heller vilka datatyper du har på dina fält i databasen... Gissar att t ex forumid och forumuid är heltal..? Om så är fallet ska du inte ha fnuttar kring dessa värden i din SQL-fråga:
Och så bör du söka lite här på forumet efter "sql injection". Dina SQL-frågor kan bli rejält osäkra om du stoppar in värden som postas från ett formuär, utan att du på något sätt kollar vad dessa variabler innehåller.
Mycket att läsa, men nu är det gjort och jag förstår vad ni menar, det verkar ju mindre bra faktiskt om man håller på med lösenord och såna "viktiga" databaser.
Dock så förstår jag inte hur jag ska skriva min(a) sqlsatser för att förhindra detta, bara att jag ska göra det.
---edit---
Om jag förstått det hela rätt, så ska jag taga bort "" från alla tal som är heltal?
Provade detta på en simpel inmatning, men det ville sig verkligen inte.
Det ville sig inte heller i koden som jag fick som svar ovan eller rättare sagt, sqlsatsen utfördes men mef fel.
Medelandet innan jag matade inte värden:
Notice: Undefined index: forumid in H:\htdocs\admin\kommentera_forum.php on line 18
Medelandet efter inmatat värde:
Notice: Undefined index: forumkommentar in H:\htdocs\admin\kommentera_forum.php on line 44
Fel: Column count doesn't match value count at row 1
" - är strängmarkering i PHP, och används för att sätta ihop SQL-frågan. (Eftersom denna är en sträng ur PHP:s perspektiv.)
' - är en strängmarkering för SQL. Det står runt alla värden som är av typen CHAR, VARCHAR eller TEXT. Däremot inte runt tal.
4 < 20 men '20' < '4' eftersom '2' ligger före '4' i teckenordning och en sträng matchas tecken för tecken.
Så om forumid och forumuid båda är heltal blir det:
Vad gäller SQL-Injections så är det viktigt att gardera sig mot det oavsett om du har viktiga saker lagrade eller ej. Om en användare kan använda detta otyg, så kan han göra precis vad han vill med dina data. Inklusiva droppa tabeller, tömma dem, byta namn på dem, lägga till saker, ändra innehåll...
OM magic_quotes_gpc är på så kommer alla farliga tecken att escape:as med automatik, om inte får du använda add_slashes() och strip_slashes() "för hand".
Hmm känns som jag måste göra om hela hemsidan...Men först ska jag få den att fungera som det är tänkt, sedan får jag fila på omgörningen.
Har provat med din kod ovan, men koden vill sig inte.
Notice: Undefined index: forumkommentar in H:\htdocs\admin\kommentera_forum.php on line 45
Fel: Column count doesn't match value count at row 1
bah, jag blir snart gar´n på detta. Kanske borde börja göra om sidan direkt i stället.
Notice: Undefined index: forumkommentar in H:\htdocs\admin\kommentera_forum.php on line 45
Det här felet hör ihop med denna:
$_POST['forumkommentar']
Du har inte något index i POST som heter så.
Har du stavat fel?
Stora/små bokstäver?
Har fältet lämnats tomt?
Innan du lagrar värdena i databasen, måste du kolla att du fått in vettiga värden. Om du inte vill att kommentarfältet ska kunna vara tomt tex, så måste du kolla det.
Annars (om det får vara tomt) kan du tex sätta
if (!isSet($_POST['forumkommentar']))
$komm = "";
else $komm = $_POST['forumkommentar'];
Och i $sql byter du ut $_POST['forumkommentar'] mot $komm.