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å?
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.