Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.04.2014, 09:44   #1
impeee
Пользователь
 
Регистрация: 11.09.2013
Сообщений: 56
По умолчанию не записываются данные в mysql через php

Здравствуйте.. Столкнулся с проблемой. Есть форма для добавления текста в PHP, и база данных, в которую текст вносится через sql-запрос.

Проблема в том, что при записи большого текста в базу, поле с текстом записывается пустое, хотя сама запись создается. Выскакивает ошибка:

Notice: Undefined variable: newstext in /var/www/rekvizit/www/administrator/news.php on line 409

SQL-запрос на 409 строке выглядит так:

Код:
$result = mysql_query("UPDATE news SET ttitle = '$title', message = '$newstext', geotag = '$geotag', img = '$img_path' WHERE id = '$news_id';");
Поле "message" хранит этот самый передаваемый текст. Если текст сделать меньше, то все записывается без проблем, и предупреждение не выскакивает в php-скрипте. Но если больше - записывается пустое поле. "message" имеет формат "text". Менял на "mediumtext" - ничего не изменилось.

в php.ini стоит:

post_max_size = 8M
mssql.textsize = 4096
mssql.textlimit = 4096

Эти настройки я тоже менял - ситуация не меняется. Помогите, пожалуйста, разобраться, с чем это примерно может быть связано?

Еще у меня стоит сессия на странице с передачей текста. Кодировка страницы "UTF-8 без BOM", кодировки прекрасно настроены, вывод корректный. Вся загвоздка в каком-то лимите на передачу информации post-запросом.

Заранее спасибо..
impeee вне форума Ответить с цитированием
Старый 07.04.2014, 10:07   #2
impeee
Пользователь
 
Регистрация: 11.09.2013
Сообщений: 56
По умолчанию

я уже просто не знаю, почему так происходит. может <input type="text"> имеет какое-то ограничение на текст на самой html-форме? но там же ведь должно стоять какой-нибудь формат на огромнейшее количество текста, не 255 же? или я уже просто схожу с ума.

убрал сессии, попробовал скрипт без них - тот же самый результат..
impeee вне форума Ответить с цитированием
Старый 07.04.2014, 10:20   #3
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Цитата:
Код:
mssql.textsize = 4096
mssql.textlimit = 4096
Эти настройки относятся к СУБД Microsoft SQL Server, а вовсе не к MySQL.
Цитата:
но там же ведь должно стоять какой-нибудь формат на огромнейшее количество текста
Какой тип данных у того поля в БД, в которое записывается текст?
Streletz вне форума Ответить с цитированием
Старый 07.04.2014, 10:20   #4
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

После изменения в php.ini параметра для post_max_size – сервер перезапускал?
Через phpinfo() визуально проверял, что изменения успешно применились, и значение для этого параметра реально изменилось?

В логах сервера ошибки есть по этому поводу?
Andkorol вне форума Ответить с цитированием
Старый 07.04.2014, 10:46   #5
impeee
Пользователь
 
Регистрация: 11.09.2013
Сообщений: 56
По умолчанию

Цитата:
Сообщение от Streletz Посмотреть сообщение
Эти настройки относятся к СУБД Microsoft SQL Server, а вовсе не к MySQL.
Какой тип данных у того поля в БД, в которое записывается текст?
тип данных сейчас text.


Цитата:
Сообщение от Andkorol Посмотреть сообщение
После изменения в php.ini параметра для post_max_size – сервер перезапускал?
Через phpinfo() визуально проверял, что изменения успешно применились, и значение для этого параметра реально изменилось?

В логах сервера ошибки есть по этому поводу?

да, после каждого внесенного изменения в конфиг я перезагружал сервер.

базу смотрю напрямую в клиенте PuTTY. логи пустые (


теперь я выяснил, что дело происходит при "особой" вставке текста в текстовую форму. она на jQuery сделана, с возможностью вставки BB-кодов. и вот когда мы напрямую копируем текст из ворда например в эту форму со всеми шрифтами, жирными, наклонными и т.д. - выдается эта ошибка. А когда я этот текст копирую сначала в блокнот, а потом в эту форму - ошибка уже не возникает..

на компьютере коллеги, текст прямо из ворда вставился в форму без BB-кодов, и с первого раза записался в БД без проблем. Как же так..
impeee вне форума Ответить с цитированием
Старый 07.04.2014, 11:24   #6
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Цитата:
на компьютере коллеги, текст прямо из ворда вставился в форму без BB-кодов, и с первого раза записался в БД без проблем. Как же так..
Какие браузеры у Вас и у коллеги?

Последний раз редактировалось Streletz; 07.04.2014 в 12:29.
Streletz вне форума Ответить с цитированием
Старый 07.04.2014, 11:44   #7
impeee
Пользователь
 
Регистрация: 11.09.2013
Сообщений: 56
По умолчанию

Цитата:
Сообщение от Streletz Посмотреть сообщение
Какие браузеры у Вас и у коллеги?
гугл хром и там и там. правда у него стоит восьмерка, у меня XP
impeee вне форума Ответить с цитированием
Старый 07.04.2014, 12:33   #8
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Если версии хрома одинаковые, то есть вероятность каких-то багов в XP или версии хрома для неё.
Попробуйте дополнительно проверить ещё в каком-нибудь бразузере, например FireFox, Opera или, на худой конец, тот же IE.
Тогда можно будет сказать уже более точно.
Streletz вне форума Ответить с цитированием
Старый 08.04.2014, 09:47   #9
x64
Пользователь
 
Регистрация: 15.11.2012
Сообщений: 13
По умолчанию

можно сделать поле BLOB, должно помочь.
или фильтровать данные перед добавлением в таблицу, вырезая ненужные для текста символы (0x00, 0x01, в общем, по 0x1f, плюс 0x7f, за исключением перевода строк и табуляции: 0x0a, 0x0d, 0x09).

и ещё одно, глупо конечно, но спрошу: $newstext пропускается через метод escape_string() класса mysqli?
x64 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
задача: есть БД с 2 файлами в которые записываются данные о квартирах, выбрать нужные данные lexa_7up Помощь студентам 4 11.01.2014 19:37
Данные записываются в файл некорректно koza4e4ok Помощь студентам 0 18.04.2013 21:53
php выводим данные из mysql sergeiqwe PHP 4 05.06.2011 08:34
Перенести данные с сайта (php + MySQL) new player WordPress и другие CMS 2 08.12.2010 22:18
не записываются данные по указанному адресу s2dentishe Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 27.05.2010 14:42