0

tinymceでhtmlを挿入しようとしています。

例えば:

<img title="q" src="../kcfinder/upload/image/3b5330574c883fe1040eaddeb596ea20.jpg" alt="q" width="640" height="480" />

PDOはこれを行います

<img title=\"q\" src=\"../../../kcfinder/upload/image/3b5330574c883fe1040eaddeb596ea20.jpg\" alt=\"q\" width=\"640\" height=\"480\" />

これはinsertActionです:

    $data = array_slice($data1, 0, -1);
    foreach ($data as $column => $value) {
        $ins[] = ':' . $column;
    } 
    $ins = implode(',', $ins);
    $fields = implode(',', array_keys($data));
    $sql = "insert into $this->tableName ($fields) values ($ins)";
    $sth = $this->connection->getConnection()->prepare($sql);
    foreach ($data as $f => $v) {
        $sth->bindValue(':' . $f, $v);
    }
    return $sth->execute();      

str_replace を試しましたが、うまくいきません。誰かが \ を削除する方法を考えていますか ?

解決:

 if (get_magic_quotes_gpc()) {
 $process = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST);
 while (list($key, $val) = each($process)) {
    foreach ($val as $k => $v) {
        unset($process[$key][$k]);
        if (is_array($v)) {
            $process[$key][stripslashes($k)] = $v;
            $process[] = &$process[$key][stripslashes($k)];
        } else {
            $process[$key][stripslashes($k)] = stripslashes($v);
        }
    }
}
unset($process);
}
4

1 に答える 1

1

これは PDO ではなく、独自のコードです。

それは、ある種の「サニタイズ」機能の魔法の引用符です。どちらかを取り除く必要があります。

于 2013-05-14T12:54:07.763 に答える