powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / При записи в бд после текста <100 все обрезается
16 сообщений из 16, страница 1 из 1
При записи в бд после текста <100 все обрезается
    #38467400
Andrey Simagin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет!

Пишу в БД небольшой текст, например в нем есть такой фрагмент текста "значение <100".
Вот, при записи в БД в нее заносится только "значение ".

Использую перед записью в БД

Код: php
1.
    $t_tsk_description = htmlspecialchars($t_tsk_description);



Но не помогает, что может быть?
...
Рейтинг: 0 / 0
При записи в бд после текста <100 все обрезается
    #38467401
Andrey Simagin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если писать так "< 100" то естественно все ОК.
...
Рейтинг: 0 / 0
При записи в бд после текста <100 все обрезается
    #38467689
artas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey Simagin,

покажите окончательно сформированный SQL запрос, а не РНР код
...
Рейтинг: 0 / 0
При записи в бд после текста <100 все обрезается
    #38467787
Andrey Simagin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
artasAndrey Simagin,
покажите окончательно сформированный SQL запрос, а не РНР код
Код: php
1.
2.
3.
4.
5.
6.
    $t_tsk_description = htmlspecialchars($t_tsk_description);
	
    $res = mysql_query("UPDATE t_tasks SET turl_id='".$t_urlid['turl_id']."', u_id='".$u_id."', u_manager_id='".$t_u_manager_id.
    "', tsk_name='".$t_tsk_name."', tsk_description='".$t_tsk_description."', tsk_date_start='".$t_tsk_date_start."', tsk_date_deadline='".$t_tsk_date_deadline.
	"', tsk_prior='".$t_tsk_prioritet."', tsk_taskup='".$t_tsk_taskup."', tsk_periodicly='".$t_tsk_period."', tsk_budjet='".$t_tsk_budjet."'".
	" WHERE tsk_id='".$tskid."'");
...
Рейтинг: 0 / 0
При записи в бд после текста <100 все обрезается
    #38467813
artas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey Simagin,

сделай сразу перед вызовом mysql_query сделай

var_dump("UPDATE t_tasks SET turl_id='".$t_urlid['turl_id']."', u_id='".$u_id."', u_manager_id='".$t_u_manager_id.
"', tsk_name='".$t_tsk_name."', tsk_description='".$t_tsk_description."', tsk_date_start='".$t_tsk_date_start."', tsk_date_deadline='".$t_tsk_date_deadline.
"', tsk_prior='".$t_tsk_prioritet."', tsk_taskup='".$t_tsk_taskup."', tsk_periodicly='".$t_tsk_period."', tsk_budjet='".$t_tsk_budjet."'".
" WHERE tsk_id='".$tskid."'");
...
Рейтинг: 0 / 0
При записи в бд после текста <100 все обрезается
    #38469171
Andrey Simagin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
artasAndrey Simagin,

сделай сразу перед вызовом mysql_query сделай

var_dump("UPDATE t_tasks SET turl_id='".$t_urlid['turl_id']."', u_id='".$u_id."', u_manager_id='".$t_u_manager_id.
"', tsk_name='".$t_tsk_name."', tsk_description='".$t_tsk_description."', tsk_date_start='".$t_tsk_date_start."', tsk_date_deadline='".$t_tsk_date_deadline.
"', tsk_prior='".$t_tsk_prioritet."', tsk_taskup='".$t_tsk_taskup."', tsk_periodicly='".$t_tsk_period."', tsk_budjet='".$t_tsk_budjet."'".
" WHERE tsk_id='".$tskid."'");

нашел, перед записью в БД у меня идет читка от HTML

$param = strip_tags($param); // чистим от HTML

вот оно видимо и воспринимает <100 как php код.

Как от этого избавиться, чтобы не удаляло подобные места типа <100?
...
Рейтинг: 0 / 0
При записи в бд после текста <100 все обрезается
    #38470000
artas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey Simagin,

Код: php
1.
string strip_tags ( string $str [, string $allowable_tags ] )



Модератор: Тема перенесена из форума "MySQL".
...
Рейтинг: 0 / 0
При записи в бд после текста <100 все обрезается
    #38470050
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mysql_real_escape_string
...
Рейтинг: 0 / 0
При записи в бд после текста <100 все обрезается
    #38470466
Andrey Simagin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
artasAndrey Simagin,

Код: php
1.
string strip_tags ( string $str [, string $allowable_tags ] )



И что именно предлагаете написать вместо "$allowable_tags"?
Пример можно?
...
Рейтинг: 0 / 0
При записи в бд после текста <100 все обрезается
    #38470468
Andrey Simagin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ScareCrowmysql_real_escape_string

не помогает

Код: php
1.
2.
3.
4.
5.
 $param = '/qqq < 100, www <100, eee/';
  $param = mysql_real_escape_string($param); // экранируем специальные символы в строке
  $param = strip_tags($param); // чистим от HTML

 echo $param;



или я что-то не так делаю?
...
Рейтинг: 0 / 0
При записи в бд после текста <100 все обрезается
    #38470639
phpz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ScareCrowmysql_real_escape_string
А чем в данном примере обосновано использование предложенной вами функции?


Andrey Simagin,

Лучшая защита от SQL-инъекций - это чёткое представление типа данных, которые должны попадать в БД. Также вместо эскейпов лучше использовать современные библиотеки доступа к данным (mysqli, pdo) и плейсхолдеры в запросах. Символ "<" базу не повалит, его можно смело туда пихать. Другое дело вывод данных из БД, именно здесь нужно обратить особое внимание на ф-ии типа htmlspecialchars и др.
...
Рейтинг: 0 / 0
При записи в бд после текста <100 все обрезается
    #38471597
Andrey Simagin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
phpzЛучшая защита от SQL-инъекций - это чёткое представление типа данных, которые должны попадать в БД. Также вместо эскейпов лучше использовать современные библиотеки доступа к данным (mysqli, pdo) и плейсхолдеры в запросах. Символ "<" базу не повалит, его можно смело туда пихать. Другое дело вывод данных из БД, именно здесь нужно обратить особое внимание на ф-ии типа htmlspecialchars и др.
Так как в моем случае занести в БД текст с удаленными HTML тегами, и чтобы одновременно туда добавились значения типа <100?
...
Рейтинг: 0 / 0
При записи в бд после текста <100 все обрезается
    #38471671
artas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey Simagin,

strip_tags ($str ,'<100>< 100>' )

так низя ?

если нет то лучше чем замена символа <number на хтмл код, и после стрип тегс обратно я не вижу
...
Рейтинг: 0 / 0
При записи в бд после текста <100 все обрезается
    #38471721
phpz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Andrey Simagin,

Можно через простой костыль:
Код: php
1.
2.
3.
$input = '<b>blabla <123654 <i>111</i></b>';
echo preg_replace('/#(\s*\d+)/i', '<$1', strip_tags(preg_replace('/<(\s*\d+)/i', '#$1', $input)));
// blabla <123654 111
...
Рейтинг: 0 / 0
При записи в бд после текста <100 все обрезается
    #38471929
Andrey Simagin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
phpzAndrey Simagin,

Можно через простой костыль:
Код: php
1.
2.
3.
$input = '<b>blabla <123654 <i>111</i></b>';
echo preg_replace('/#(\s*\d+)/i', '<$1', strip_tags(preg_replace('/<(\s*\d+)/i', '#$1', $input)));
// blabla <123654 111


Спасибо! Костыль работает! :)
...
Рейтинг: 0 / 0
При записи в бд после текста <100 все обрезается
    #38473733
user199617
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В базе лучше хранить данные такими, какими их ввел пользователь(т.е. htmlspecialchars нужно применять во время вывода). Данные обрезаются потому что длина столбца таблицы ограничена 100 литералами
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / При записи в бд после текста <100 все обрезается
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]