Форум программистов, компьютерный форум, киберфорум
Наши страницы
MySQL
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
SecurityCop
0 / 0 / 0
Регистрация: 11.12.2014
Сообщений: 17
1

Вывод из БД значений с двойными ковычками

11.12.2014, 19:03. Просмотров 813. Ответов 5
Метки нет (Все метки)

Вечер добрый.

Столкнулся с такой проблемой:

Заношу в БД следующие данные(каждое значение в свое поле)
'1' "2" `3`(именно в таком виде, одинарные кавычки, двойные и знак апострофа)

Запрос который все это вносит в БД из формы:
SQL
1
INSERT INTO TABLE_NAME SET c_1=?, c_2=?, c_3=?', $element['c_1'], $element['c_2'], $element['c_3']
В БД они появляются в том виде в котором я их ввел.

На странице просмотра(выводятся в таблицу) они отображаются корректно.
SQL
1
SELECT * FROM TABLE_NAME WHERE c_id=$forView
На странице редактирования(данные выводятся и подставляются в форму) отображаются только данные с одинарными кавычками и знаками апострофа, а данные заключенные в двойные кавычки не выводятся.
SQL
1
SELECT c_1, c_2, c_3 FROM TABLE_NAME WHERE c_id='$id'
В чем может быть причина? Какие еще данные предоставить?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.12.2014, 19:03
Ответы с готовыми решениями:

SQL. Вывод значений из таблицы и подсчет количества этих значений в другой таблице
Задание звучит так: Для таблиц user и phones, где соответствие записей...

Функция с ковычками в запросе в VBA
Доброе утро ;) Использую функцию Nz для того чтобы в таблицу место NULL попало...

Вывод значений ассоциативного массива и подстановка этих значений в ссылки
Почему не вставляются значения в ссылку? <?php $leftMenu = array(...

Вывод в список значений поля, одновременно допускающем несколько значений
Есть таблицы, 6 штук. Как через запрос вывести в список информацию о СМУ?...

Вывод значений массива сортируя блоки по первым буквам значений
Привет всем! Читаю заголовок своей темы и поражаюсь своей фантазией )) ...

5
quwy
Native x86
3338 / 2184 / 650
Регистрация: 13.02.2013
Сообщений: 7,239
11.12.2014, 19:09 2
Каким образом отображаются данные на форме?

Если в инпутах, то вот что происходит. Строка:
Код
"text"
Инпут:
HTML5
1
<input value="$data">
где $data тем или иным способом заменяется на строку, показанную выше.

Результат:
HTML5
1
<input value=""text"">
т.е. value="", а потом синтаксически некорректный мусор, который браузером просто игнорируется.
1
SecurityCop
0 / 0 / 0
Регистрация: 11.12.2014
Сообщений: 17
11.12.2014, 19:12  [ТС] 3
quwy,
Код
$result = mysql_query("SELECT c_1,c_2,c_3 FROM TABLE_NAME WHERE c_id='$id'");

$row = mysql_fetch_assoc($result);

<input type="text" class="form-control" name="c_1" id="c_1" tabindex="1" value="<?php echo $row['c_1'] ?>">
Понимаю что код индусский(еще только учусь)
Проблема видимо в этом value="<?php echo $row['c_1'] ?>?
0
quwy
Native x86
3338 / 2184 / 650
Регистрация: 13.02.2013
Сообщений: 7,239
11.12.2014, 19:17 4
Лучший ответ Сообщение было отмечено SecurityCop как решение

Решение

SecurityCop, собственно это именно то, о чем я написал. Выводите так:
PHP
1
value="<?php echo htmlspecialchars($row['c_1']); ?>"
1
SecurityCop
0 / 0 / 0
Регистрация: 11.12.2014
Сообщений: 17
11.12.2014, 19:44  [ТС] 5
quwy, благодарю, а то уже голову сломал с этим.

Добавлено через 26 минут
Не буду создавать новую тему, спрошу тут.

В одной книге о PHP привели вот такой код:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
function mysql_qw()
{
    $args = func_get_args();
    $conn = null;
    if (is_resource($args[0])) $conn = array_shift($args);
    $query = call_user_func_array("mysql_make_qw", $args);
    return $conn !== null ? mysql_query($query, $conn) : mysql_query($query);
}
 
function mysql_make_qw()
{
    $args = func_get_args();
    $tmpl =& $args[0];
    $tmpl = str_replace("%", "%%", $tmpl);
    $tmpl = str_replace("?", "%s", $tmpl);
    foreach ($args as $i => $v) {
        if (!$i) continue;
        if (is_int($v)) continue;
        $args[$i] = "'" . mysql_real_escape_string($v) . "'";
    }
    for ($i = $c = count($args) - 1; $i < $c + 20; $i++)
        $args[$i + 1] = "UNKNOWN_PLACEHOLDER_$i";
    return call_user_func_array("sprintf", $args);
}
Он позиционируется как "базовая защита от SQL инъекций".
Код
mysql_qw(
        'INSERT INTO.....
Его стоит использовать только при INSERT и UPDATE?
Стоит ли использовать его для SELECT?
0
quwy
Native x86
3338 / 2184 / 650
Регистрация: 13.02.2013
Сообщений: 7,239
11.12.2014, 19:52 6
Цитата Сообщение от SecurityCop Посмотреть сообщение
базовая защита от SQL инъекций
Самая лучшая защита от инъекций -- это использование PDO и параметрических запросов.

Цитата Сообщение от SecurityCop Посмотреть сообщение
Стоит ли использовать его для SELECT?
Да, вот пример. Запрос:
PHP
1
query("SELECT Permissions FROM Users WHERE UserName = '$UserName'");
Злоумышленник передает в качестве UserName такую строку:
Код
dummy' OR '1' = '1
В результате выполняется такой запрос:
SQL
1
SELECT Permissions FROM Users WHERE UserName = 'dummy' OR '1' = '1'
Этот запрос выберет не конкретного пользователя, а всех пользователей из таблицы, что даст массу путей для манипуляции.
1
11.12.2014, 19:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.12.2014, 19:52

Задачи с двойными интегралами
Привет всем нужна помощь в решении задач для усвоения материала интеграл умею...

Задачи с двойными масивами!
1. Дан A(m). Составить масив B в следущем виде A(1), A(2),A(1)+A(2)/2,...

Осуществить вывод значений аргумента и результатов вычислений значений функции в заданном диапазоне с заданным шагом
1)Задание: Вычислить значение заданной функции. Осуществить вывод значений...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru