Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Joomla + captcha
Форумы портала PHP.SU » » CMS и фреймворки » Joomla + captcha

Страниц (1): [1]
 

1. kochan10 - 31 Мая, 2011 - 17:06:36 - перейти к сообщению
Ситуация:
свой модуль для Joomla с капчей. капча рендерится в этом модуле (такова ситуация, что нельзя штатные капча-средства использовать), но нельзя вывести нормально, т.к. кодировка всех файлов UTF-8 и мешает BOM (портит картинку и, как следствие, она не отображается)
но это можно решить, если вызывать файл, генерящий капчу, отдельно по прямой ссылке. В этом случае встаёт проблема: как хранить данные о пользователях?
с сессиями проблема, т.к. Joomla использует свои сессии и, чтобы получить к ним доступ, надо чтобы скрипт был вызван через движок джумлы.
подскажите, пожалуйста, как решить данную проблему: либо встроить прямо в движок, чтобы BOM от UTF-8 не мешал, либо передавать значения "ключей" капчи через сессию как нибудь или через файлы.
Заранее благодарен
2. Viper - 01 Июня, 2011 - 07:16:39 - перейти к сообщению
kochan10 так а сохранить файл в utf8 без BOM что мешает?
3. kochan10 - 01 Июня, 2011 - 13:06:33 - перейти к сообщению
мешает то, что придётся менять кодировку у ВСЕХ файлов джумлы
4. Viper - 02 Июня, 2011 - 11:49:07 - перейти к сообщению
kochan10 это вы с чего решили? там ANSI as UTF8 везде. И нет там нигде BOM
5. kochan10 - 02 Июня, 2011 - 12:03:25 - перейти к сообщению
через прокси смотрел приходящие данные и сам лично видел там BOM. откуда тогда может это быть?
6. Viper - 02 Июня, 2011 - 16:07:47 - перейти к сообщению
kochan10 из-за "кривого" редактора в котором код правится. И через прокси не вариант смотреть. Откройте любой файл Notepad++ или AkelPad и там будет показано с BOM или без. Но могу дать гарантию что если файлы дистрибутива joomla не менялись "умелыми" ручками, то там без BOM.
7. kochan10 - 02 Июня, 2011 - 16:14:36 - перейти к сообщению
как раз и в Notepad++ тоже показывается, что с BOM, сайт не мой, а заказчика, так что я не знаю, скорее всего да, правилось через кривой редактор. Но файт остаётся фактом - BOM есть.
Тогда помогите с сессиями, как через них делать? ведь joomla использует свои сессии (идентификаторы, файлы сессий и т.п.)
8. Viper - 03 Июня, 2011 - 07:14:12 - перейти к сообщению
kochan10 а что обратиться к сессиям Joomla из модуля никак? Ведь вызвать класс все равно можно из модуля.
9. kochan10 - 03 Июня, 2011 - 16:19:51 - перейти к сообщению
дело в том, что сессии джумлы доступны, только если работать с модулем через неё. но тогда и всплывает BOM.
10. kochan10 - 08 Июня, 2011 - 23:15:56 - перейти к сообщению
Решение оказалось простым.
Если кому интересно:
вылезал BOM до капчи, но была включена буферизация вывода. надо было убрать всё, до текущего момента:
PHP:
скопировать код в буфер обмена
  1. $obLength = ob_get_length();
  2. if ($obLength !== false || $obLength > 0) {
  3. while (@ob_end_clean());
  4. if (function_exists('ob_clean')) {
  5. }
  6. }

 

Powered by ExBB FM 1.0 RC1