Hei! Kun tallennan oheisella koodilla tietokantaan sivun tiedot, lainausmerkit (") muuttuvat tietokannassa muotoon \", vähän niin kuin käytettäisiin htmlspecialchars() -funktiota. Mistäköhän tämä johtuu ja miten saisin sen korjattua?
Lomake:
... echo "<form name='edit' action='update.php?action=save&type=new' method='post'> <p>Name: <br><input type='text' class='text' name='name'/></p> <p>Title: <br><input type='title' class='text' name='title'/></p> <textarea name='content' class='textarea'>"; echo "</textarea>"; echo "<br><input type='submit' value='Publish'/></form>"; ...
PHP -skripti, joka suorittaa kyselyn:
... $name = $_POST["name"]; $title = $_POST["title"]; $content = $_POST["content"]; $query = $con->prepare("INSERT INTO pages (name, title, content) VALUES (?, ?, ?)"); $query->execute(array($name, $title, $content)); ...
Etsipäs sellaiselle termillä googlesta kuin "magic quotes".
Kiitos paljon Triton! Oli hankala yrittää googlettaa itse, kun en aluksi tiennyt, mitä hakisi :)
Eli se, onko magic quotes käytössä, on siis serverin määritettävissä? No, sain sen nyt joka tapauksessa korjattua kirjoittamalla .htaccessiin:
php_flag magic_quotes_gpc Off
, koska en pysty muuttamaan serverin asetuksia.
Ja mä kun luulin että tuosta syövästä olisi päästy eroon PHP 5.4 myötä o.O
No joo, näyttääpä 5.2 ja 5.3 olevan vielä 5 kertaa yleisemmin käytössä kuin 5.4
Juu, hostilla on PHP:n versio 5.2...
Aihe on jo aika vanha, joten et voi enää vastata siihen.