A PHP Error was encountered

Severity: Notice

Message: session_start(): ps_files_cleanup_dir: opendir(/var/lib/php5) failed: Permission denied (13)

Filename: controllers/processor.php

Line Number: 20

Codeigniter. Русские символы в адресной строке. Русские на Тотоионо

Codeigniter. Русские символы в адресной строке

Так уж вышло, что CI не пропускает русские символы в адресной строке и выдает ошибку. Есть 2 решения этой проблемы - протупить, модифицировав ядро или не протупить и воспользоватся краеугольным камнем расширения ядра.

Для этого создаем файл system/application/libraries/MY_URI.php и размещаем там следующий код:

<?php
class MY_URI extends CI_URI
{
function _filter_uri($str)
{
if ($str != '' AND $this->config->item('permitted_uri_chars') != '')
{
if ( ! preg_match("|^[".preg_quote($this->config->item('permitted_uri_chars'))."]+$|ui", $str))
{
header('HTTP/1.1 400 Bad Request');
show_error('URI Содержит запрещенные символы.');
}
}

return $str;
}
}
?>

Модификатор регулярных выражений u как раз позволяет различать механизму регулярных выражений русские символы, за что ему отдельная благодарность. Осталось изменить набор разрешенных символов в конфиге system/application/config/config.php

с $config['permitted_uri_chars'] = 'a-z 0-9~%.:_-';
на $config['permitted_uri_chars'] = '- !()a-zA-Zа-яА-Яё0-9~%.,:_+';

Интересное

Отзыв о FirstVDS
При покупке хостинга у FirstVDS мне предложили скидку за годный отзыв в блоге или на форуме....
Git и Bitbucket
Git – это распределенная система контроля версий. Пожалуй, на этом теория заканчивается, так как...
Проверка сайта на вирусы
Если пользоваться привычной терминологией, то web вирусы не являются вирусами в традиционном...
Project Glass — Очки будущего от Google
Компания Google представила суперсовременные «очки дополненной реальности» или Project Glass. Впрочем,...

Комментарии

    Чтобы оставлять комментарии, авторизируйтесь

    Войти через OpenID

    рейтинг1+-
    Популярные
    Точки входа
    Наверх