[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как избавиться от проблемы с кавычками
maximka787
Мужики, объясните пожалуйста один раз.

В поле <input> ввожу значение ООО "Название Компании"

Сохраняю в БД. Символы экранируются. В phpmyadmin и файле дампа значение ООО \"Название Компании\".

При редактировании значения через мой скрипт в форму вывожу вот так:
echo '<input type="text" value="'.htmlspecialchars($row['firma']).'" />';


В итоге, в самой же форме появляется ООО \"Название Компании\" с кавычками.
Код выглядит так:
<input type="text" value="ООО \"Название Компании\"" />


Ну и не сложно догадаться, что при каждом новом редактировании добавляется еще один слэш.


Вопрос, в каком именно моменте у меня ошибка?

_____________
..Работает - не трогай!
maximka787
Да, забыл дописать. Решения я нашел вот такое

$firma = htmlspecialchars($row['firma']);

$firma = str_replace ('\9quot;', '9quot;', $firma); //9=&

echo '<input type="text" value="'.$firma.'" />';


работает правильно, но как то криворуко по моему.

_____________
..Работает - не трогай!
Kusss
Что-то тут не так. Не может htmlspecialchars выдавать \".
Вот что должно получиться
<input type="text" value="ООО &quot;Название Компании&quot;">
FatCat
Цитата (maximka787 @ 21.12.2017 - 14:01)
echo '<input type="text" value="'.htmlspecialchars($row['firma']).'" />';

echo '<input type="text" value="'.$row['firma'].'" />';


_____________
Бесплатному сыру в дырки не заглядывают...
Kusss
FatCat
"Нее, так не получиться" (38 попугаев)
$firma = 'ООО "Название Компании"';
echo '<input type="text" value="'.htmlspecialchars($firma).'" />';
echo "\n";
echo '<input type="text" value="'.$firma.'" />';

Результат
<input type="text" value="ООО &quot;Название Компании&quot;" />
<input type="text" value="ООО "Название Компании"" />
twin
FatCat
Аяяй. Чему учишь)))
Цитата (maximka787 @ 21.12.2017 - 11:01)
Сохраняю в БД. Символы экранируются.
Каким образом, покаж.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
maximka787
Цитата (twin @ 21.12.2017 - 11:19)
Символы экранируются. Каким образом, покаж.

По моему запись в БД уже выглядит плохо(

INSERT INTO `tab` VALUES (1, 'ООО \\"Название Компании\\"');

Тут теперь вообще двойные.

вот так сохраняю
$query = "UPDATE `tab` SET `name` = '".mysqli_real_escape_string($_POST['name'])."'";

это для примера.

_____________
..Работает - не трогай!
maximka787
Цитата (FatCat @ 21.12.2017 - 11:17)
Цитата (maximka787 @ 21.12.2017 - 14:01)
echo '<input type="text" value="'.htmlspecialchars($row['firma']).'" />';

echo '<input type="text" value="'.$row['firma'].'" />';

да тут вообще почте кавычки всё ломается)

_____________
..Работает - не трогай!
maximka787
Всё, решился вопрос.
Оказывается это у меня на локальном так.
На хостинге сохранил и всё нормально. Видимо режимы MYSQL какие-то разные.

То есть в выводе достаточно
echo '<input type="text" value="'.htmlspecialchars($firma).'" />';

и не задваиваются кавычки. это у меня косяк.

Всем спасибо, кто принял участие)

_____________
..Работает - не трогай!
killer8080
Цитата (maximka787 @ 21.12.2017 - 16:15)
На хостинге сохранил и всё нормально. Видимо режимы MYSQL какие-то разные.

magic quotes были объявлены deprecated ещё в 5.3, в семёрке их окончательно выпилили, а у тебя они что включены? blink.gif
maximka787
Цитата (killer8080 @ 21.12.2017 - 17:23)
Цитата (maximka787 @ 21.12.2017 - 16:15)
На хостинге сохранил и всё нормально. Видимо режимы MYSQL какие-то разные.

magic quotes были объявлены deprecated ещё в 5.3, в семёрке их окончательно выпилили, а у тебя они что включены? blink.gif

Да, на локальном видать старый совсем сервак. Особо на нем не работаю. Собственно из-за этого проблема то и обнаружилась.
То есть она обнаружилась на локальном компе и на одном из двух хостингов.

Я забыл строку в htaccess дописать php_flag magic_quotes_gpc off вот и эти кавычки начали появляться в БД. так бы и не заметил)

_____________
..Работает - не трогай!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.