Käytän kantaan tallentaessa pg_escape_string -funktiota, joka lisää ' " \ -merkkien eteen yhden \ -merkin lisää.
Miten saan poistettua tuon lisätyn \ -merkin, kun haen kannasta tavaraa ja tulostan ne?
Sulla on todennäköisesti magiq_quotes_gpc päällä. Ota se pois tai aja käyttäjän syöte ensin stripslashes()-funktion läpi, vasta sitten pg_escape_string -funktion läpi.
Mitenkäs tämän magiq_quotes_gpc:n saa sitten pois?
Kokeilin näin, mutta ei toiminut
pg_query("UPDATE taulu SET kentta = '".stripslashes(pg_escape_string($muuttuja))."' ");
.htaccess tiedostoon seuraavaa:
php_flag magic_quotes_gpc off
htaccess siksi että jos sen arvoa muutetaan vasta itse skriptissä, on magic quotes ehtinyt jo sörkkiä sisääntulevaa dataa toimintansa mukaisesti. Voit myös muuttaa sen arvoa pysyvästi php.ini tiedostosta.
Ja alkuperäiseen kysymykseen, kannattaa ottaa ne ylimääräiset \ merkit pois jo lisäysvaiheessa. Stripslashesilla se pitäisi kyllä onnistua.
PAKO kirjoitti:
Kokeilin näin, mutta ei toiminut
pg_query("UPDATE taulu SET kentta = '".stripslashes(pg_escape_string($muuttuja))."' ");
Nythän ajat ensin pg_escape_string() ja sen jälkeen vasta stripslashes() - päinvastoin kuten neuvoin.
ajv kirjoitti:
PAKO kirjoitti:
Kokeilin näin, mutta ei toiminut
pg_query("UPDATE taulu SET kentta = '".stripslashes(pg_escape_string($muuttuja))."' ");Nythän ajat ensin pg_escape_string() ja sen jälkeen vasta stripslashes() - päinvastoin kuten neuvoin.
Kokeilin myös toisin päin, mutta ei toiminut sekään.
EDIT: Nyt toimii tuo stripslashes(). Jostain syystä se ei toiminut tuossa pg_query -lauseessa. Käytin sitä ennen tuota lausetta tuohon $muuttujaan niin toimii.
Aihe on jo aika vanha, joten et voi enää vastata siihen.