Ja, det er vel klart nok. Og jeg viser dig noget, der kan afgøre om det er et "tal", dvs. et antal cifre, så man ikke kan putte noget snavs ind den vej. Hvad er problemet?
Jeg fornemmede det var der du ville hen Erik. Helt enig i at det er gangske fornuftigt. Var dog ikke helt sikker på om preg_match fik strippet noget, så jeg ville bare spille mine kort sikkert ved at pille data ud fra resultatet. ;-)
mpj_86: Går ud fa dit problem viser sig ved en MySQL fejlmeddelelse!? Er du sikker på at dit query ikke skriver $id i stedet for indholdet af $id? $query = mysql_query ("SELECT * FROM forum_kategori WHERE id = '$id'") vil jeg personligt nok rette til: $query = mysql_query ("SELECT * FROM forum_kategori WHERE id = '".$id."'") for at være på den sikre side. Dermed burde det heller ikke være et større problem om $id er af typen tal eller tekst, da den alligevel bliver konverteret til tekst i dit query. ...med mindre du altså skal bruge $id i andre funktioner, hvor det bliver nødt til at være en integer. Det er stadigt fornuftigt at køre preg_match for at forhindre at underlige tegn vil lave underlige fejl i dit query (SQL-safe query).
Kort sagt: Benyt Eriks eksempel med preg_match() og put mit eksempel med intval() ved succes i if-sætningen. Ved error kan du vælge at skrive en besked, lade være med at foretage dig noget eller noget helt tredje.
Jamen, hvad vil du have der skal ske, hvis den ikke indeholder et tak, men fx. q12q? Der er ingen der kan sørge for at $_GET['id'] ikke indeholder andet en et "tal", så det er helt op til dig hvad der skal ske.
if (preg_match('/^\d+$/',is_numeric($_GET['id']))) { $id = $_GET['id']; } else { echo '<b>ID er ikke angivet eller også er ID ikke et tal!</b>'; exit; }
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.