Вставка двойных кавычек в MySQL и распечатка их без обратной косой черты

У меня есть форма, где следующий тип кода должен быть вставлен:

<iframe src="https://www.google.com/maps/embed?pb=!1m14!1m8!1m3!1d3035.058400512634!2d-3.6438669999999997!3d40.473973!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0xd422eea55d33c51%3A0x3294408e8e67eff4!2sClinica+Dental+Artidental!5e0!3m2!1ses!2ses!4v1419779677798" width="600" height="450" frameborder="0" style="border:0"></iframe>

Я ловлю объявленную стоимость следующим образом:

$mapLink = htmlspecialchars($_POST['mapLink'], ENT_QUOTES);

И iframe вставляется следующим образом:

&lt;iframe src=\&quot;https://www.google.com/maps/embed?pb=!1m14!1m8!1m3!1d3035.058400512634!2d-3.6438669999999997!3d40.473973!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0xd422eea55d33c51%3A0x3294408e8e67eff4!2sClinica+Dental+Artidental!5e0!3m2!1ses!2ses!4v1419779677798\&quot; width=\&quot;600\&quot; height=\&quot;450\&quot; frameborder=\&quot;0\&quot; style=\&quot;border:0\&quot;&gt;&lt;/iframe&gt;

Как я могу сделать, чтобы получить мою первоначальную ссылку "<iframe src..." с php и распечатать как было написано изначально? Без обратной косой черты, &и т. д.

ОБНОВЛЕНИЕ 1

Вот как я вставляю / обновляю в MYSQL:

            $editCentro = $con->prepare("UPDATE centros SET  active = :active, nombre = :nombre, zona = :zona, address = :address,
metro = :metro, zip = :zip, phone = :phone, fax = :fax, email = :email, mapLink = :mapLink, descripcion = :descripcion, horarios = :horarios
WHERE id = ".$centroId);
$editCentro->execute(array(':active'=>$active, ':nombre'=> $nombre, ':zona'=>$zona, ':address'=>$address, ':metro'=>$metro,
':zip'=>$zip, ':phone'=>$telefono, ':fax'=>$fax, ':email'=>$email, ':mapLink'=>$mapLink, ':descripcion'=>$descripcion, ':horarios'=>$horarios));

И даже если не экранировать значение, оно вставляется с обратной косой чертой перед двойными кавычками …

0

Решение

Вы избегаете строки при назначении ее $mapLink:

$mapLink = htmlspecialchars($_POST['mapLink'], ENT_QUOTES);

Если вы хотите вставить его в базу данных как есть, просто возьмите значение из post и не избежать этого. (Кроме того, это не тот выход, который вы бы использовали для предотвращения SQLi)

Чтобы предотвратить внедрение SQL, используйте привязку mysql следующим образом:

$stmt = $mysqli->prepare("INSERT INTO sometable (fieldA, mapField, fieldC) VALUES (?, ?, ?)");
$stmt->bind_param('sss', $someVar, $mapLink, $otherVar);

Подробнее о привязке параметров в документации по PHP здесь.

Если у вас есть проблемы с магическими кавычками, вы можете удалить их следующим образом:

$mapLink = stripslashes($_POST['mapLink']);
1

Другие решения

Ты пытался html_entity_decode?

<?php
$orig = "I'll \"walk\" the <b>dog</b> now";

$a = htmlentities($orig);

$b = html_entity_decode($a);

echo $a; // I'll &quot;walk&quot; the &lt;b&gt;dog&lt;/b&gt; now

echo $b; // I'll "walk" the <b>dog</b> now
?>
0

По вопросам рекламы [email protected]