Я искал целую вечность и не могу найти эту точную проблему, но не стесняйтесь указать мне правильное направление, если это так.
Простое описание :содержит страницу с TEXTAREA. Эта TEXTAREA должна принимать HTML, который используется для редактирования домашней страницы веб-сайта клиента.
Цель состоит в том, чтобы TEXTAREA сохранялась в ОЧЕНЬ простую таблицу mySQL.
ПРОБЛЕМА :Проблема в том, что если TEXTAREA превышает 512 символов, ничего не сохраняется в поле базы данных . При этом он хранит его нормально.
Вот код:
$homeTopLeft = addslashes(htmlentities($_GET['homeTopLeft'], ENT_QUOTES | ENT_IGNORE, "UTF-8"));
$homeNews = addslashes(htmlentities($_GET['homeNews'], ENT_QUOTES | ENT_IGNORE, "UTF-8"));
mysql_login();
$query = "UPDATE cmsData SET homeTopLeft='$homeTopLeft', homeNews='$homeNews', lastUpdated=NOW() WHERE entry=1";
$result = mysql_query($query) or die(reportError('Unable to save new CMS data'));
if (mysql_affected_rows() > 0) {
echo '<p class="ok">Pages Successfully Updated!</p>';
echo '<p style="border:1px dashed #ccc;">homeTopLeft = '. $homeTopLeft. '</p>';
} else {
echo '<p class="err">Unable to update the home page</p>';
}
В настоящее время у меня есть метод $ _GET, поскольку я фактически вызываю функцию через AJAX, который отлично работает до 512 символов.
Что это не так
-Это не размер поля mySQL :. Его тип данных - ТЕКСТ, и я вручную увеличил поле через phpMyAdmin без ошибок. -Это не (насколько я могу судить )вызов AJAX, потому что он работает, если TEXTAREA < 512 байт. -Сопоставление (Я не думаю, что :Я установил его на latin1_general_ci
и пробовал latin1_bin
и некоторые из UFT)
Заключительное примечание Фактический размер базы данных поля homeTopLeft
должен быть больше 512 байт из-за вызова htmlentities
.
Я также должен добавить, что это происходит независимо от того, использую ли я обычный TEXTAREA
или tinyMCE
редактор форматированного текста.
Любая помощь, которую вы могли бы предложить, будет принята с благодарностью. Спасибо!