Huomasin kun lisään MySQL tietokantaan tai muutan tietoja, tekstissäni oleva '-merkki aiheuttaa ongelmia kyselyissä.
Onko olemassa mitään valmista funktiota jolla pääsisi eroon tästä ongelmasta?
Vai pitäisikö esim. ennen tietokantaan tallentamista muuttaa kaikki '-merkit vaikkapa "[merkki]"-muotoon ja tekstiä tulostettaessa sitten muuttaa kaikki "[merkki]"-kohdat '-merkeiksi?
Ja, onko mitään muita merkkejä joita tulisi varoa käyttämästä?
addslashes (tietokantaan tallettaessa) lisää merkkien kuten (' ja ") eteen kenoviivan. stripslashes (tietokannasta haettaessa) poistaa tuon kenoviivan.
sitten on quotemeta joka laittaa kans kenon (\) näitten merkkien eteen: . \\ + * ? [ ^ ] ( $ )
tossa ainakin muutama esimerkki mitä itse käytän...
Jes, kiitos. :)
addslashes on hyvä, stripslashes-funktiota et tarvitse.
Hmmm, jotenkin outoa. Jostain syystä stripslashes ei tunnu toimivan. Addslashes kyllä toimii, mutta stripslashes ei millään. :/ Ja ei kai stripslashes niin kovin uusi käskykään ole PHP:ssä? En tiedä mikä vikana..
Edit: Idiootti taas vauhdissa....
Käytin
stripslashes($teksti);
..vaikka olisi pitänyt käyttää
$teksti = stripslashes($teksti);
Nyt toimii hyvin. Tajusin vian kun katsoin miten olin addslashesia käyttänyt.
Ei sitä stripslashesia edelleenkään tarvita...
https://www.php.net/manual/en/function.
The PHP directive magic_quotes_gpc is on by default, and it essentially runs addslashes() on all GET, POST, and COOKIE data. Do not use addslashes() on strings that have already been escaped with magic_quotes_gpc as you'll then do double escaping.
Aihe on jo aika vanha, joten et voi enää vastata siihen.