Данные Textarea иногда не вставляются в базу данных MySQL с копированием и вставкой

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

По сути, у меня есть сайт, где пользователи могут размещать объявления, есть текстовая область, где они могут разместить до 3000 символов текста, который затем публикуется в БД. Текст проверяется при отправке jquery для определения длины символа, и сообщение php подтверждает это, прежде чем что-либо еще будет обработано. Я не использую mysqli_real_escape_string, потому что он портит сообщения пользователей и делает их несчастными, поэтому я очищаю данные с помощью этой функции:

`function dataSecure($data){
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
$data = strip_tags($data);
$data = addslashes($data);
return $data;
}`

перед вставкой с подготовленным оператором в базу данных mysql в виде текста, utf8-unicode-ci, по умолчанию NULL. Функция может показаться излишней, но она предотвращает любые типы SQL-инъекций, которые я могу придумать. Если сценарий определяет, что stmt был успешно выполнен, он вычитает из учетной записи пользователя, если нет, возвращает false и позволяет пользователю редактировать данные.

ПРИМЕЧАНИЕ. Сценарий работает для 95% всех сообщений, оператор подготовлен правильно и т. Д. И не публикуется здесь, поскольку сценарий не является проблемой. Проблема возникает, когда некоторые пользователи пытаются скопировать и вставить свое объявление из текстового документа или электронного документа в текстовую область. В этом случае выполняется stmt, и деньги вычитаются из учетной записи пользователя, но на самом деле никакие данные не вставляются в БД. Я перепробовал все, что было в моих силах, чтобы воспроизвести эту ошибку (используя документы MSword, копируя их переадресованные электронные письма, добавляя нечетные символы, используя разные браузеры, используя UFT8_encode () для предотвращения ошибки и т. Д.), Но она не работает. Другие жаловались на SO на то, что скопированные и вставленные текстовые области не могут быть вставлены, но они, похоже, остались нерешенными.

Лучше всего поспорить, что что-то в текстовой области не совпадает с БД, поэтому я надеюсь, что кто-то с опытом может помочь пролить свет на проблему.

0

Решение

Задача ещё не решена.

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

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector