powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Нечитаемые символы и проверка ввода
36 сообщений из 36, показаны все 2 страниц
Нечитаемые символы и проверка ввода
    #37941159
kalimba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, подскажите пожалуйста, как удобнее и правильнее сделать следующее: пользователь копирует из различных документов (Word, Excel) различные значения в текстовые поля ввода на сайте и в результате в БД хранятся строки с различными не читаемыми символами, например Tab(CHAR(9)), перевод строки (CHAR(10)), возврат каретки (CHAR(13)), а также возможные пробелы в начале и в конце (необходим Trim). Решить саму проблему конечно же несложно, у меня только встает вопрос - где это сделать? Возможные варианты как я понимаю такие:
1.) Ajax-валидация или просто JavaScript.
2.) В коде бизнес логики перед вызовом хранимой процедуры.
3.) В тексте самой хранимой процедуры.
Хотелось бы услышать какой вариант вы бы выбрали и почему. Спасибо.
...
Рейтинг: 0 / 0
Нечитаемые символы и проверка ввода
    #37941178
rsolanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kalimba, век воли не видать, выбирай Java-Script!
...
Рейтинг: 0 / 0
Нечитаемые символы и проверка ввода
    #37941188
яваскрипт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: c#
1.
2.
//javascript на клиенте
String('нужная строка').replace(/\r|\n|\t|\s{2,}/g, ' ').replace(/^\s+|\s+$/g,"");


автор- где это сделать?
если уверен, что у всех включён js в броузерах - на клиенте!
...
Рейтинг: 0 / 0
Нечитаемые символы и проверка ввода
    #37941198
Deza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kalimbaЗдравствуйте, подскажите пожалуйста, как удобнее и правильнее сделать следующее: пользователь копирует из различных документов (Word, Excel) различные значения в текстовые поля ввода на сайте и в результате в БД хранятся строки с различными не читаемыми символами, например Tab(CHAR(9)), перевод строки (CHAR(10)), возврат каретки (CHAR(13)), а также возможные пробелы в начале и в конце (необходим Trim). Решить саму проблему конечно же несложно, у меня только встает вопрос - где это сделать? Возможные варианты как я понимаю такие:
1.) Ajax-валидация или просто JavaScript.
2.) В коде бизнес логики перед вызовом хранимой процедуры.
3.) В тексте самой хранимой процедуры.
Хотелось бы услышать какой вариант вы бы выбрали и почему. Спасибо.

ни когда не верь "клиенту"
...
Рейтинг: 0 / 0
Нечитаемые символы и проверка ввода
    #37941205
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Перефразирую (как я понял)
Где делать валидацию инпута? (не важно какого)

1.) На стороне клиенте (в браузере - JS).
2.) На серевере (в коде бизнес логики / хранимой процедуры)
3.) Все ответы правильны

Ответ - 3, бо нельза доверять чисто клиентской проверке.
...
Рейтинг: 0 / 0
Нечитаемые символы и проверка ввода
    #37941206
kalimba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
яваскрипт
Код: c#
1.
2.
//javascript на клиенте
String('нужная строка').replace(/\r|\n|\t|\s{2,}/g, ' ').replace(/^\s+|\s+$/g,"");


если уверен, что у всех включён js в броузерах - на клиенте!
Спасибо большое за ответ, но как это применить к контролу?

Dezaни когда не верь "клиенту"
2 или 3? :)
...
Рейтинг: 0 / 0
Нечитаемые символы и проверка ввода
    #37941214
kalimba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПарамонПерефразирую (как я понял)
Где делать валидацию инпута? (не важно какого)

1.) На стороне клиенте (в браузере - JS).
2.) На серевере (в коде бизнес логики / хранимой процедуры)
3.) Все ответы правильны

Ответ - 3, бо нельза доверять чисто клиентской проверке.
Ну это не совсем валидация как я понимаю, а именно очистка от мусора различного. Тогда стает вопрос - зачем делать JS, если на сервере то оно точно отработает?)
...
Рейтинг: 0 / 0
Нечитаемые символы и проверка ввода
    #37941219
Deza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kalimba
Dezaни когда не верь "клиенту"
2 или 3? :)

1,2
...
Рейтинг: 0 / 0
Нечитаемые символы и проверка ввода
    #37941220
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kalimba Тогда стает вопрос - зачем делать JS, если на сервере то оно точно отработает?)
Меньше обращений к серверу, быстрота проверки.
...
Рейтинг: 0 / 0
Нечитаемые символы и проверка ввода
    #37941221
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
3

проверка на "самой серверной" стороне в любом случае понадобится, как уже сказали.
А проверка на клиенте (js) в данном случае особого смысла не имеет, т.к. здесь вообще говоря не проверка данных, а корректировка. Данные в любом случае будут отправлены, никаких сообщений об ошибке не предусматривается.
...
Рейтинг: 0 / 0
Нечитаемые символы и проверка ввода
    #37941243
яваскрипт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторСпасибо большое за ответ, но как это применить к контролу?
Вот с ASP.NET абстракцией у мну не очень! ;)
Так что сам...
...
Рейтинг: 0 / 0
Нечитаемые символы и проверка ввода
    #37941245
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Яростный Меч т.к. здесь вообще говоря не проверка данных, а корректировка. Данные в любом случае будут отправлены, никаких сообщений об ошибке не предусматривается.
Да, если только чистка, без сообщений, то достаточно серверной.
...
Рейтинг: 0 / 0
Нечитаемые символы и проверка ввода
    #37941259
kalimba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем большое за ответы, выбор сделан (3).
...
Рейтинг: 0 / 0
Нечитаемые символы и проверка ввода
    #37941549
яваскрипт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторвыбор сделан (3).
зы:
авторЗдравствуйте, подскажите пожалуйста, как удобнее и правильнее сделать следующее: пользователь копирует из различных документов (Word, Excel) различные значения в текстовые поля ввода на сайте и в результате в БД хранятся ПУСТЫЕ!!! строки
...
Рейтинг: 0 / 0
Нечитаемые символы и проверка ввода
    #37941576
kalimba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
яваскриптавторвыбор сделан (3).
зы:
авторЗдравствуйте, подскажите пожалуйста, как удобнее и правильнее сделать следующее: пользователь копирует из различных документов (Word, Excel) различные значения в текстовые поля ввода на сайте и в результате в БД хранятся ПУСТЫЕ!!! строки Намека не понял :) Это к чему?
...
Рейтинг: 0 / 0
Нечитаемые символы и проверка ввода
    #37941675
яваскрипт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kalimbakalimbakalimba3.) В тексте самой хранимой процедуры.
выбор сделан (3).
Намека не понял :) Это к чему?
ну как бэ, я посылаю тебе на сервер набор из непечатных символов...
все проверки на пустую строку молчат как партизаны!!! - это логично строка-то не пустая, и символы там есть! ;)
хп честно отрабатывает и, удаляет их (непечатные) символы...

ИТОГО: в бд ложится пустая строка!!!
...
Рейтинг: 0 / 0
Нечитаемые символы и проверка ввода
    #37941738
Starlex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
яваскрипт ИТОГО: в бд ложится пустая строка!!!

а ты не клади пустую строку :)
...
Рейтинг: 0 / 0
Нечитаемые символы и проверка ввода
    #37941815
яваскрипт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
автора ты не клади пустую строку :)
а в какой из хп не класть?! в той или в этой!?
или в каждой, в которой идёт упоминание об этом или том поле?! ;)
...
Рейтинг: 0 / 0
Нечитаемые символы и проверка ввода
    #37941866
Starlex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
яваскриптавтора ты не клади пустую строку :)
а в какой из хп не класть?! в той или в этой!?
или в каждой, в которой идёт упоминание об этом или том поле?! ;)

Очевидно, сразу после удаления символов нужно проверять, не осталась ли в результате пустая строка. Если удаление реализовано в ХП, то в ХП и проверять.
...
Рейтинг: 0 / 0
Нечитаемые символы и проверка ввода
    #37941912
яваскрипт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторОчевидно, ...
Если всем (запись, изменение and etc. того\иного поля) занимается одна ХП - очевидно!
Если ХП с подобным функционалом будет много - ничего очевидного невижу!
Разве что copy\paste - НО! поговаривают - это зло!
...
Рейтинг: 0 / 0
Нечитаемые символы и проверка ввода
    #37942081
Винни-Бух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На клиенте проверять нужно, чтобы не напрягать лишний раз сервер каждым клиентским чихом.

Но потом нужно проверять НЕ В ТЕКСТЕ ХРАНИМОЙ ПРОЦЕДУРЫ, а за шаг до ее вызова - у Вас по-любому будет прослойка кода, которая считывает данные формы (или URL'а) и готовит параметры для ХП (которые в общем случае берутся как из полей пришедшей формы, так и из Ваших констант, из каких-то кешированных данных и прочее, и прочее).

Цель: НЕ начинать работать с БД ДО того, пока не убедитесь в том, что все параметры не только физически соответствуют нужным типам, но и логически укладываются. В случае невалидности можно вернуть пользователю страницу с сообщением об ошибке, а код для работы с БД ТАК И НИ РАЗУ НЕ ДЕРНУТЬ до тех пор, пока пользователь не заполнит все поля верными данными. Как ни крутите, открытие соединения и его использование - вещь дорогая.
...
Рейтинг: 0 / 0
Нечитаемые символы и проверка ввода
    #37942092
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Винни-Бух, +1
...
Рейтинг: 0 / 0
Нечитаемые символы и проверка ввода
    #37942494
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Винни-БухВ случае невалидности можно вернуть пользователю страницу с сообщением об ошибке
Это уже написанно, но здесь цель не напрягать пользователя сообщениями, а подкорректировать строку за него - типа htmlencode.
...
Рейтинг: 0 / 0
Нечитаемые символы и проверка ввода
    #37942512
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще как вариант.
Сохранять как есть, и корректировать при выводе в UI. )
...
Рейтинг: 0 / 0
Нечитаемые символы и проверка ввода
    #37942723
Starlex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
яваскриптавторОчевидно, ...
Если всем (запись, изменение and etc. того\иного поля) занимается одна ХП - очевидно!
Если ХП с подобным функционалом будет много - ничего очевидного невижу!
Разве что copy\paste - НО! поговаривают - это зло!

Дублирование кода можно избегать как на клиенте, так в приложении и в базе.
...
Рейтинг: 0 / 0
Нечитаемые символы и проверка ввода
    #37942742
Starlex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Винни-БухНа клиенте проверять нужно, чтобы не напрягать лишний раз сервер каждым клиентским чихом.

Но потом нужно проверять НЕ В ТЕКСТЕ ХРАНИМОЙ ПРОЦЕДУРЫ, а за шаг до ее вызова

Совет неплох, но не универсален. Есть немало случаев, когда с одной базой работают несколько приложений. Часто бывает, когда базу ведут организации своими силами, а приложения время от времени отдают разрабатывать на сторону. В этих случаях часто предпочитают, чтобы обработка строки, чистка её от мусора была реализована в базе.
...
Рейтинг: 0 / 0
Нечитаемые символы и проверка ввода
    #37942746
Starlex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонЕще как вариант.
Сохранять как есть, и корректировать при выводе в UI. )

Это оправдано, если количество обновлений больше количества чтений, но чаще бывает наоборот :)
...
Рейтинг: 0 / 0
Нечитаемые символы и проверка ввода
    #37942810
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StarlexПарамонЕще как вариант.
Сохранять как есть, и корректировать при выводе в UI. )

Это оправдано, если количество обновлений больше количества чтений, но чаще бывает наоборот :)
Или нужно иметь точную копию оригинала, для обратной конвертации к примеру.
...
Рейтинг: 0 / 0
Нечитаемые символы и проверка ввода
    #37942820
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StarlexЭто оправдано, если количество обновлений больше количества чтений, но чаще бывает наоборот :)
Да и затраты на форматирование строк - в большинстве случаев это мелочь :) (в наше время)
...
Рейтинг: 0 / 0
Нечитаемые символы и проверка ввода
    #37943000
kalimba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дублирования кода избежал, создав функцию:
Код: sql
1.
2.
3.
DECLARE @Result varchar(4000)
SET @Result = LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(@InputString, CHAR(9), ''), CHAR(10), ''), CHAR(13), ''), CHAR(31), ''), CHAR(1), '')))
RETURN @Result


Вызывается она для входных параметров хранимой процедуры, поэтому на производительности не сказалось.
...
Рейтинг: 0 / 0
Нечитаемые символы и проверка ввода
    #37943347
яваскрипт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
молодец!!!

Теперь в своём приложении нажми два раза энтер в поле ввода и отправь на сервер!!!
...
Рейтинг: 0 / 0
Нечитаемые символы и проверка ввода
    #37943367
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И как потом знать где новая строка ? )
...
Рейтинг: 0 / 0
Нечитаемые символы и проверка ввода
    #37943416
Deza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kalimbaДублирования кода избежал, создав функцию:
Код: sql
1.
2.
3.
DECLARE @Result varchar(4000)
SET @Result = LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(@InputString, CHAR(9), ''), CHAR(10), ''), CHAR(13), ''), CHAR(31), ''), CHAR(1), '')))
RETURN @Result


Вызывается она для входных параметров хранимой процедуры, поэтому на производительности не сказалось.

а теперь еще всю остальную логику перенеси в бд:)
...
Рейтинг: 0 / 0
Нечитаемые символы и проверка ввода
    #37943448
Deza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возможно так будет красивее

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
public static class MyString {
        public static String MyReplace(this string input, char[] oldChar, char newChar) {
            foreach (var c in oldChar) {
                input = input.Replace(c, newChar);
            }
            return input;
        }
    }



Код: c#
1.
2.
3.
4.
5.
private void button1_Click(object sender, EventArgs e) {
            char[] arr = new char[3]{'2','3','4'};
            var str = textBox1.Text;
            textBox1.Text += str.MyReplace(arr, 'W');
        }
...
Рейтинг: 0 / 0
Нечитаемые символы и проверка ввода
    #37943469
kalimba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
яваскриптмолодец!!!

Теперь в своём приложении нажми два раза энтер в поле ввода и отправь на сервер!!!
ПарамонИ как потом знать где новая строка ? )
Согласен, есть косяк, но в моем случае непринципиально. Кстати говоря, можно сделать
Код: c#
1.
2.
IF (@Result = '')
RETURN NULL



Dezaа теперь еще всю остальную логику перенеси в бд:)
Ну в общем это понятно что всему надо меру знать : ) В моем случае довольно удобно получилось.

DezaВозможно так будет красивее

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
public static class MyString {
        public static String MyReplace(this string input, char[] oldChar, char newChar) {
            foreach (var c in oldChar) {
                input = input.Replace(c, newChar);
            }
            return input;
        }
    }



Код: c#
1.
2.
3.
4.
5.
private void button1_Click(object sender, EventArgs e) {
            char[] arr = new char[3]{'2','3','4'};
            var str = textBox1.Text;
            textBox1.Text += str.MyReplace(arr, 'W');
        }


Не спорю, но это надо создавать класс StringUtils, прописать в вызове ХП все текстовые поля с методом расширения, скомпилировать сайт... Ну, Вы поняли :)
...
Рейтинг: 0 / 0
Нечитаемые символы и проверка ввода
    #37943494
Deza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kalimbaНе спорю, но это надо создавать класс StringUtils, прописать в вызове ХП все текстовые поля с методом расширения, скомпилировать сайт... Ну, Вы поняли :)

ну да, лучще городить костыли
...
Рейтинг: 0 / 0
36 сообщений из 36, показаны все 2 страниц
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Нечитаемые символы и проверка ввода
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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