PHP: удерживание сессии

Комментарии ()

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

Сессия имеет свойство максмального времени жизни. Например, если мыхотим задать время жизни сесии - 3 часа. Для этого в файле php.ini устанавливаем следующие параметры:

session.gc_maxlifetime = 10800
session.cookie_lifetime = 10800

Частая ситуация, когда нету возможности внести изменения в файл php.ini. Другой способ -  установка этих параметров при помощи файла .htaccess. Для этого вносим в него следующие строки:

php_value session.gc_maxlifetime 10800
php_value session.cookie_lifetime 10800

Так же следует учесть, что хостеры часто запрещают использовать директиву php_value в файле .htaccess.


Читать далее

Размер моего диска на 1 ТБ меньше паспортного

Комментарии ()

Переразбивал fdisk'ом под FreeBSD 4.11 винчестер на 1Т но так и не смог. После подключения на FreeBSD поновее, надеялся sysinstall'ом разбить, так нет, винчестер стал доступен как 32М.

Для восстановления правильного размера помог следующий мануал


Читать далее

Шаблоны модулей

Комментарии ()

Основнымы движущими силами CMS "Движок" есть старые добрые модули, которые щас модно трансформировались в контроллеры и тому подобное. У нас же данный рычаг управления будет называться по старинке: модуль. И так, в процессе написания модулей я заметил, что основной склет функциональных файлов практически не изменяется. Возможно у вас вопрос, зачем плодить файлы которые практически идентичны? На мой взгляд намного это припятствует возникновению проблем, когда нужно заточить тот или иной модуль под свои специфичные нужды, при этом сосед по парте не потсрадает.


Читать далее

Оператор Switch и массив

Комментарии ()

Пример работы оператора Switch  с массивом в php

$a='c;

switch ($a) {
    case in_array($a,array('a','b')):echo "yes";
        break;
    default:echo "no";
        break;
}

 


Читать далее

Отображение и обработка ошибок

Комментарии ()

Обработка ошибок возложена на класс Error

Сессии:

$_SESSION['error']['flag'] - true|false. true - есть ошибка

$_SESSION['error']['val'][$key]=$value - массив ошибок (по ключу). $key - id елемента, $value - текст ошибки (может быть в виде мультиязычной константы)

$_SESSION['error']['data'] - массив с даными. Обычно это $_POST чи $_GET

Включение режима ошибки на примере файла обработки авторизации auth_auth_post.php:

...
$error->setError();
$error->setErrorVal('error_main', 'error_auth_');
$error->setData($_POST);
$user->redirect(_WWW . 'auth/auth/');
exit;

Если необходимо вывести информацию об ошибке возле поля ввода

$error->setErrorVal('name', 'ошибка ввода!');

возле елемента ввода формы с id=name, будет отображено сообщение об ошибке: ошибка ввода!

В качестве текста ошибки, можно использовать мультиязычную константу

$error->setErrorVal('name', 'error_input_');

само собой разумеется, ее нужно предварительно создать в "словаре"админпанели.

Вывод ошибки

Выводом ошибок занимается js-функция checkRule, основным назначением которой является валидация. В даном случаи она вызывается без переметров. Например

<script>
$(document).ready(function(){
checkRule();
$('#btn_login').click(function(){
	if (checkRule('auth'))
	{
		$('#form_auth').submit();
	
	} 
})

})
</script>

После вывода, режим ошибки выключается автоматически

В шаблоне должен присутствувать div для вывода информации о ошибке

<div class="alert alert-error hide" id="error_main"></div>

 


Читать далее

Валидация формы

Комментарии ()

checkRule - js-функиця, которая выполняет валидацию даных на основе ранее заданых правил, а также вывод ошибок, если валидация прошла без ошибок. Если функция получает флаг, что ошибка есть, то   выводится  текст об ошибке возле елемента вводу формы, при этом html-страничка не перегружается, функция работает через ajax-запросы.


Читать далее

Проект "Движок"

Комментарии ()

Вместо вступления. Да! Я занимаюсь веб-мазохизмом - пишу свою CMS. Поскольку прогер из меня не получился, а тяга к писанию кода горит огнем, взвесив все за и против пришел к выводу: оно мне все таки нада wink.

Если в кратце, проблема скорее всего во мне. Промониторь популяные CMS'и, выбери себе наиболее перспективную, выучи, набей руку и вперед. Ну так не, меня все не устраивает. Wordpress убожище, в коде каша, Joomla - доставка пицы камазом, тормознутая вещь, или я просто не умею (скорее не хочу) ее правильно "готовить". Ко все как всегда мне чего то не хватает. Поскольку, как я выше изложил, мне проще самому чего-то написать, чем разбираться не понятно какого качества кода, пишу свое детище. Кстате, эти строки написаны в моем "Движке" и это уже радует.


Читать далее

Dovecot не сохраняются письма в папке отправленые

Комментарии ()

Почтовый клиент Thunderbird - при попытке отправить письмо, создается папка "отправленные" в клиенте и  на стороне сервера, но в кодировке в UTF7. Письмо в отправленные клиент сохранить не может: говорит о том что произошла ошибка, и предлагает повторить снова. 

Проблемы решилась использованием плагина Dovecot "autocreate". Для его использования необходимо  добавить в конфиг Dovecot следующее:

protocol imap {
  mail_plugins = autocreate
  }
  
plugin {
  autocreate = Sent
  autocreate2 = Drafts
  autosubscribe = Sent
  autosubscribe2 = Drafts
}

 


Читать далее

Error in system filter /etc/system_filter.exim does not exist

Комментарии ()

wget -O /etc/system_filter.exim "http://files.directadmin.com/services/system_filter.exim"


Читать далее

NFS клиент для Windows

Комментарии ()

Windows 7

В Windows 7 Ultimate есть встроенный NFS-клиент, который нужно включить

 

Дальше, монтируем шару

mount 192.168.1.1:/home/user y:

Правда возникает проблема с кодировкой, посему юзаю NFS-клиент, о котором описано ниже

Windows XP(2003)

Для этого семейста виндовсов, родного клиента нету как такого. С бесплатных понравился NekoDrive

Устанавливаем Microsoft .NET Framework 4, Dokan и сам NekoDrive


Читать далее

Webit.in.ua 2013