26. marts 2006 - 15:06Der er
15 kommentarer og 1 løsning
indsætte tags i databasen?
Jeg har en side hvor man kan indsætte noget tekst i en database som så kan vises igen på en anden side.. mit problem er at man kan indsætte html-tags og på den måde spolere en hel masse, så det kommer til at se vandvittigt ud.. fx med tabeller <hr> osv.. Hvis man fx sætter et ord i "" bliver det vist som /"ord/". Det hele er meget mystisk.. Hvordan slipper jeg for alt dette?
For at undgå brug af tags er der flere muligheder. F.eks. kan du bruge strip_tags($_POST["feltnavn"]) før du gememr. Eller, synes jeg bedst om, bruge htmlentities($row["text"]) når du laver output til browseren.
Mener du ikke at du får \"noget\" ud?
Det er fordi PHP'en på serveren pr. default escaper "farlige tegn" som vil kunne bruges til noget sql-injection.
nej, det er ikke så mystisk! :O) Dit første eks. ville du bruge en php funktion i sql'en, og det virker ikke, men når du blot har en variabel, så kan du godt!
ok.. er det så fint nok som jeg har gjort nedenstående? eller skal jeg ændre det til ". safe_query($_GET["produkt"]) ."... og hvis jeg ændrer det til safe_q kan jeg så fjerne mine $produkt = mysql_real_escape.......
måske jeg spørger lidt dumt, men vil helst ikke lave en brøler med noget som er så vigtigt:)
jahh, du kan godt gøre det på den måde der, omend jeg synes at nu når du ved det er GET så brug ikke request, og du kan jo desuden spare lidt kode hvis du putter det ind i en funktion.
Og selv hopper jeg altid "ud/ind" af php-kode i sql. Og bruger altid " i f.eks. $_GET["produkt"]
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.