Архив

Архив Июль 2010
28 июля 2010 2 комментария

Интеграция kcaptcha.
Отключаем в настройках ruBook стандартную защиту. Далее правятся файлы. (Проверялось на версии 0.4.3.)
1. /components/com_rubook/rubook.html.php
после:

<?php
    if ( is_imgcode() ) {
?>
  <tr>
    <td><?php echo _COM_RUBOOK_LANG_FIELD_ENTER_CODE; ?></td>
    <td><input type="text" class="inputbox" name="info[imgcodetext]" maxlength="7" style="width: 130px" /></td>
    <td colspan="2"><img src="<?php echo $GLOBALS['mosConfig_live_site']; ?>/components/com_rubook/imgcode.php"></td>
  </tr>
<?php
    }
?>

дописываем:

  <tr>
    <td><?php echo _COM_RUBOOK_LANG_FIELD_ENTER_CODE; ?></td>
    <td><input type="text" class="inputbox" name="info[keystring]" maxlength="7" style="width: 130px" /></td>
    <td colspan="2"><img src="<?php echo $GLOBALS['mosConfig_live_site']; ?>/imgcode/?<?php echo session_name()?>=<?php echo session_id()?>" /></td>
  </tr>

<?php echo $GLOBALS['mosConfig_live_site']; ?>/imgcode/ — путь к файлам kcaptcha, т.е. в примере распаковываем содержимое архива в папку imgcode в корне сайта.
2. components/com_rubook/rubook.class.php
после

        /** Проверка кода защиты */
        if ( ( $GLOBALS['mosRuBookConfig_imgcode'] == 1 ) and ( $GLOBALS['mosRuBookUser_admin'] != 1 ) ) {
            if ( ! ( $_SESSION['img_code'] == md5( $object->imgcodetext ) ) ) {
                $object->_error = _COM_RUBOOK_LANG_CODE_BAD;
                return false;
            }
        }

дописываем:

        if (isset($_SESSION['captcha_keystring']) && $_SESSION['captcha_keystring'] != $object->keystring) {
                $object->_error = _COM_RUBOOK_LANG_CODE_BAD;
                return false;
        }

после:

$object->imgcodetext = ( isset( $info['imgcodetext'] ) ) ? $info['imgcodetext'] : '';

дописываем:

$object->keystring = ( isset( $info['keystring'] ) ) ? $info['keystring'] : '';

после:

$this->imgcodetext = ( isset( $info['imgcodetext'] ) ) ? $info['imgcodetext'] : '';

дописываем:

$this->keystring = ( isset( $info['keystring'] ) ) ? $info['keystring'] : '';

Проверка значения параметра REFERER.
Т.е. адреса страницы, откуда выполнен переход. Если этот параметр пустой значит запрос к форме выполняется напрямую.

        if ($_SERVER["HTTP_REFERER"] == '') {
            $object->_error = "Spam Detected!";
            return false;
        }

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

        if (preg_match("/http/i", $object->text)) {
            $object->_error = "Links in the comments are not allowed!";
            return false;
        }
Categories: CMS Tags:

Допустим мы имеем хостинг-аккаунт на 1 домен без прав создавать дополнительные домены, но с возможностью создавать определенное количество или неограниченное количество паркованных доменов. Домены паркуются на корневой каталог веб-содержимого, т.е. public_html и изменить это мы не можем (если бы могли, то можно было бы парковать разные домены на public_html/site1, public_html/site2 и т.д. и проблема бы решилась сама собой).
Используя mod_rewrite:
В корне (public_html) в файле .htaccess

RewriteEngine on

RewriteCond %{HTTP_HOST} ^site1.*
RewriteRule ^(.*)$ /site1/$1 [L]

RewriteCond %{HTTP_HOST} ^site2.*
RewriteRule ^(.*)$ /site2/$1 [L]

Также в папках site1 и site2 файлы .htaccess с содержимым

RewriteEngine on

Подробнее: Например основной наш домен primary.com
Паркуем домены site1.ru и site2.ru
В корне сайта primary.com есть еще папки site1 и site2 с соответствующими сайтами.
Теперь например когда запрашиваемый URL будет содержать site1 будет открываться содержимое папки /site1, т.е. site1.ru = primary.com/site1/

Categories: Web Tags:

По умолчанию в Social Engine 2 БД создается в кодировке latin1_general_ci и после переноса на другой сервер для устранения ошибки с кодировкой во время чтения из БД пришлось в header.php и admin/admin_header.php после инициализации коннекта к базе:

$database = new se_database($database_host, $database_username, $database_password, $database_name);

дописать следующее:

$char = $database->database_query("set session character_set_server=latin1;"); 
$char = $database->database_query("set session character_set_database=latin1;"); 
$char = $database->database_query("set session character_set_connection=latin1;"); 
$char = $database->database_query("set session character_set_results=latin1;"); 
$char = $database->database_query("set session character_set_client=latin1;");
Categories: CMS Tags: , ,
10 июля 2010 2 комментария

При установке Adobe Photoshop CS3 на Windows Server 2003 для случаев, когда инсталлятор сообщает, что система не поддерживается, а поддерживается лишь Windows XP и Windows Vista.
Проверялось на Adobe Photoshop CS3 Extended
Решение:
В файле \Adobe CS3\payloads\AdobePhotoshop10en_US_volume\AdobePhotoshop10en_US_volume.proxy.xml
меняем

"Server2003":{"Exclude":true}

на

"Server2003":{"Require":true}

почти в самом конце файла, 4-я строка снизу.

Categories: Windows Tags:

Проблема такая: после перезагрузки система загружается только с одной раскладкой, которая установлена по-умолчанию, все остальные (не дефолтные) пропадают.
Решение:
1. Создаем и выполняем файл 1.reg

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoSaveSettings"=dword:00000000

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run]
"SystemTray"="SysTray.Exe"

2. Перезагрузка.

3. Создаем файл c:\regopts.txt

[RegionalSettings]
InputLocale=0409:00000409,0419:00000419

(для русской и английской раскладок, для украинской добавляем также после запятой 0422:00000422)

4. Удаляем все параметры из ветки [HKEY_CURRENT_USER\Keyboard Layout\Preload]

5. Пуск — Выполнить — cmd и в консоли

rundll32.exe shell32,Control_RunDLL intl.cpl,,/f:"c:\regopts.txt"

Ну как автоматизировать я думаю придумать легко.

Основано на http://forum.oszone.net/thread-136866.html

Categories: Windows Tags:
8 июля 2010 1 комментарий

Встречал что в некоторых XP в безопасном режиме служба Windows Installer недоступна, в некоторых доступна, вообщем чтобы сделать доступной тут советуют сделать следующее:

REG ADD "HKLM\System\CurrentControlSet\Control\SafeBoot\Minimal\MSIServer" /VE /T REG_SZ /D "Service" 
net start msiserver

у меня сказало так:

C:\Documents and Settings\method kab>REG ADD "HKLM\System\CurrentControlSet\Cont
rol\SafeBoot\Minimal\MSIServer" /VE /T REG_SZ /C "Service"
Ошибка: Слишком много параметров в командной строке.

может и не правильно но у меня так заработало и дальше экспериментировать не стал:

C:\Documents and Settings\method kab>REG ADD "HKLM\System\CurrentControlSet\Cont
rol\SafeBoot\Minimal\MSIServer" /VE
Операция успешно завершена

C:\Documents and Settings\method kab>net start msiserver
Служба "Windows Installer" запускается.
Служба "Windows Installer" успешно запущена.

C:\Documents and Settings\method kab>
Categories: Windows Tags: