Jeg har en formular hvorfra man kan indsätte en tekst, der så lagres i DB. Ved INSERT gemmes denne värdi fint - også hvis jeg bruger specialtegnet "'". Hvis jeg imidlertid henter/loader värdien af teksten ind i formularen igen, trunkeres alt der kommer efter "'" tegnet.
Hvordan löses dette i PHP? Findes der en funktion til formålet? Såvidt jeg kan se, er problemet ikke i forbindelse med MySQL.
Hvilke andre specialtegn skal man väre opmärksomme på?
Kommunerne har digitaliseret indgangen for borgerne. Men bag skærmen håndteres mange arbejdsgange stadig manuelt mellem systemer, mails og organisatoriske siloer.
Problemet er jo at hvis der indsættes ' vil din sql streng jo blive fortolket som afsluttet når du henter eller indsætter et resultat. Ved disse funktioner jeg har angivet ovenfor escapes strengen og der stættes \ foran '. Ved stripslashes fjernes disse \ tegn.
1) Du skal ikke bruge stripslashes ved udtræk fra databasen. Er der for mange \-ere er det fordi du (eller PHP) har sagt addslashes een gang for meget 2) Når man udskriver noget til html, skal det altid være med html-tegn, så ret print " value=\"$k1b\""; til print " value=\"".htmlentities($k1b)."\""; Ellers vil du ikke kunne skrive tegnet: " i feltet. 3) Brug altid "..." omkring værdier i tags ...
Og så er det altså ikke mere besværligt end det ;)
Du aflæser så om der allerede er sat \-ere på, og hvis ikke gør du det selv. Nederst på siden er denne funktion, som det skulle være godt at bruge i stedet for addslashes:
function check_quotes($value) { return ((!get_magic_quotes_gpc()) ? addslashes($value) : $value); }
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.