22. september 2017 - 07:57Der er
5 kommentarer og 1 løsning
qoutes, æøå og prepared statements
Jeg har et input felt hvor value="database_data"
Dataene er indsat og hentet med mysqli og prepared statements.
I databasen er alle quotes escaped med backslashes og det har den(prepared statements) gjort automatisk.
Dvs at når dataen udskrives i value="" i input-feltet og der er quotes (anførselstegn) i, så afsluttes value der.
Jeg kender addslashes/stripslashes/htmlentities/urlencode men ingen af dem kan jeg få til at benytte, da der i input-feltet også kan være danske ÆØÅ, som vil se mærkelige ud ved brug af nogle af funktionerne.
1. Så hvad skal jeg egentlig gøre?
2. Er sikkerheden ved brug af prepared statements okay bare ved at indsætte variablen direkte fra $_GET i bind_param() ?
1. Når du bruger prepared statements er det ikke nødvendigt at bruge escaping funktioner; hvis du føler der er et behov for det så gør det noget forkert.
2. I princippet ja (med forbehold), men i praksis er det en dårlig idé at indsætte data du ikke validerer for indhold.
Så vil jeg nok anbefale dig at få opdateret din PHP version; Magic Quotes blev deprecated i PHP 5.3 og helt fjernet i PHP 5.4; PHP 5.4 havde "End of Life" den 3. september 2015.
htmlentities() omdanner anførselstegn til html stripslashes() fjerner slashes ved de data der har fået dette utf8_decode() fixer problemet htmlentities() laver med danske ÆØÅ
hvis nogen har input hører jeg dem hjertens gerne!
Synes godt om
Ny brugerNybegynder
Din løsning...
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.