Больше символов в посте! Как сделать?

Ошибка: Текст топика должен быть от 2 до 15000 символов 


СРАЗУ скажу что меня в action.topic.class.php на 40000 пишет после этого
Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 24 bytes) in /home/parthers/public_html/classes/lib/external/Jevix/jevix.class.php on line 344

меньше 35000 не хватает!

21 комментарий

avatar
на хостинге не хватает памяти для обработки такого объема текста
  • ort
  • -1
avatar
memory_limit = 12M — опция в php.ini файле
ini_set('memory_limit', '12M'); — php-код в начале проблемных скриптов.
php_value memory_limit 12M — опция в .htaccess файле.

зы. должно поддерживаться хостингом.
зыы. значение выделяемой памяти регулируйте сами, но не переусердствуйте, этоне просто так сделано.
avatar
Идентичная проблема — не постятся топики больше 35000 символов.

1) Ошибок никаких не выдает (в php.ini — 12М), просто говорит что топик большой (http://floomby.ru/content/B2T6rrk1EC/)
2) в actionTopic.class.php стоит 99000 символов
3) в БД тип полей в таблице prefix_topic_content выставил longtext

Подскажите, в чем может быть проблема, как добиться правды?
avatar
Для тех, кто еще «озабочен» данной «проблемой»...
Вот что удалось накопать. Быть может те у кого опыта или сообразительности поболее моего смогут что-нибудь понять.

1. /classes/actions/ActionTopic.class.php

if (!func_check(getRequest('topic_text'),'text',2,99000)) {
$this->Message_AddError('Текст топика должен быть от 2 до 99000 символов','Ошибка');
$bOk=false;
}

2. /include/function.php

function func_check($sValue,$sParam,$iMin=1,$iMax=100) {
switch($sParam) {
........ 
case 'text': if (mb_strlen($sValue,'UTF-8')>=$iMin and mb_strlen($sValue,'UTF-8')<=$iMax){ return true; } break;
........
default: 
return false;
}
return false;
}

Есть предположение, что функция mb_strlen по каким-то причинам не справляется с возлагаемой на нее ответственностью и когда видит публикацию с размером >=35977 символов (такого значения я добился на своей хостинг-площадке) — возвращает ошибку.

Осталось выяснить:
1. Нужно донастроить движок
2. Нужно донастроить хостинг
3. Нужно искать альтернативу данной функции
4. Что-то еще…

Если есть какие-то предположения или предложения — напишите, плз :) Спасть уже не могу из-за этого «пустяка».
avatar
вы в курсе что такое «дебаг»?
avatar
Как процесс в целом, или как функция (возможность) движка ЛС в частности?
Если первое — то да :) Если второе — нет. Подскажите-вразумите и благодарности моей в Ваш адрес (и не только моей) не будет предела.
avatar
print $var;
avatar
case 'text': 
	print "
MaxValue:".$iMin;
	print "
MinValue:".$iMax;
	print "
Value:".$sValue;
	print "
mb_strlen:".mb_strlen($sValue,'UTF-8');
	if (mb_strlen($sValue,'UTF-8')>=$iMin and mb_strlen($sValue,'UTF-8')<=$iMax)
	{ 
		print "return true";
		return true; 
	} 
	break;
avatar
case 'text': 
	print "MaxValue: ".$iMin;
	print "MinValue: ".$iMax;
	print "Value: ".$sValue;
	print "mb_strlen: ".mb_strlen($sValue,'UTF-8');
	if (mb_strlen($sValue,'UTF-8')>=$iMin and mb_strlen($sValue,'UTF-8')<=$iMax)
	{ 
		print "return true";
		return true; 
	} 
	break;


парсер сожрал теги.
avatar
А ещё я перепутал местами $iMin и $iMax ^_^
Старею. Ну не суть.
avatar
Да, спасибо большое, с кодом разобрался.

В результате все как надо — минимальное значение 2, максимальное 99000. Сам текст размером 39000 символов.

$sValue у текста возвращается пустое, ничего туда не передается, выводится ошибка о том что «публикация должна содержать от 2 до 99000 символов».

Посему возвращаюсь к вышеперечисленным пунктам в низу моего коммента — может это быть какой-то особый каприз хостинга? Я ради интереса попробовал на локалхосте (денвер) — все, блин, работает.
avatar
Возможно каприз. А ошибку мы уже выявили — не приходит значение $sValue, так что капать в эту сторону.
avatar
Так что можно двигаться дальше:
print "getRequest: ".getRequest('topic_text');
print "func_check: ".func_check(getRequest('topic_text'),'text',2,99000);

if (!func_check(getRequest('topic_text'),'text',2,99000)) {
$this->Message_AddError('Текст топика должен быть от 2 до 99000 символов','Ошибка');
$bOk=false;
}

avatar
Оба принта — пустые. Ничего не передается и не принимается видимо.
avatar
Делаем выводы
avatar
К сожалению, с моими никчемными знаниями программирования это врятли поможет. Хотя, разумеется, спасибо за совет. Вот если бы Вы подсказали что-нибудь конкретное (например что я должен проверить с помощью дебага, на что обратить внимание) ;)
avatar
см. выше
avatar
в версии 0.4.2. это значение вынесено в конфиг
avatar
А если выдает ошибку при выставленном значении по умолчанию (15000), на 2000 символов? Где покопаться?
В каком файле конфига вообще настраивать сайт?
avatar
Пользователь пытается создать свой личный блог, картинка вставляется, текст вставляется, но не публикуется, выдает ошибку «текст должен быть от 2 до 15000 символов», добавляемый текст всего 2000 знаков. Подскажите как это можно исправить?
  • veds
  • 0
avatar
Ребят подскажите хоть в какую сторону смотреть? Мнеяю в файле config.php -реакции 0
  • veds
  • 0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.