Разбираем файл config.php — Codeignter

В этом уроке давайте рассмотрим подробнее файл config.php. При создании нового сайта на Codeigniter, нужно уметь правильно настроить данный файл, чтобы избежать различные ошибки, неудобства и т.д, а так же обезопасить Ваш новый проект.

Данный файл Вы можете найти перейдя в папку application->config. После того как Вы открыли этот файл перед Вами появляется множество различных настроек, которые мы сейчас рассмотрим. Рассматривать будем только самое необходимое.

Самая первая настройка:

$config['base_url']= '';

Здесь находится основной адрес Вашего сайта, поэтому перед началом какой-либо работы нужно вписать адрес Вашего проекта на локальном сервере. Если же Вы переносите Ваш сайт на реальный хостинг, то прописываем основной адрес Вашего сайта, т.е Ваш домен.

Если работаете на локальном сервере:

$config['base_url']= 'http://localhost/myproject/';

Если работаете на реальном хостинге:

$config['base_url']= 'http://mysite.ru/';

Не забываем в конце ставить слэш.

index_page
Здесь оставляем без изменений — index.php, эту настройку можно будет делать пустой, если поработать с файлом .htaccess а так же routes.php. В дальнейшем мы рассмотрим как это делается.

language
Тут указываем папку языка приложения по умолчанию. Если Вы зайдете в папку system->language, то увидите там папку english, в которой хранятся различные переводы для классов Codeigniter. Вы можете просто в этом файле перевести на русский язык, то что Вам нужно, либо создать в папке system->language папку, например, rus — и найти в интернете переводы всех этих файлов и сохранить в данную папку. Тогда в этой настройке нужно будет указать эту папку, с русскими переводами, в нашем случае это папка rus. Тогда данные переводы будут использоваться по умолчанию.

charset
Рекомендую кодировку оставлять UTF-8, так как это сейчас самый лучший вариант, но если Вы хотите работать с какой-то другой, тогда прописывайте здесь название кодировки, например — iso-8859-1.
Опускаемся ниже и находим

permitted_uri_chars
Тоже важная настройка. Здесь указываем символы, которые Вы допускаете использовать в адресной строке Вашего приложения. По умолчанию это символы — a-z 0-9~%.:_\-. Я обычно убираю символы — ~%.:~, так как эти символы я не использую никогда, а если кому то взбредет в голову побаловаться с моей адресной строкой, то его ожидает огорчение :)

encryption_key
Если в Вашем приложении Вы используете класс session, то без этой настройки Вам не обойтись. Если Вы тут ничего не укажете и захотите использовать данный класс, то Codeigniter любезно попросит Вас внести туда Ваш какой-то ключ.

Не стоит сильно размышлять, можно просто вписать туда строку из любых символов, например — fdshfhsd. Данный ключ придаст Вашей сессии уникальность.
Далее идет серия настроек, посвященных тоже сессиям. Но данные настройки позволяют работать сессиям через Вашу БД. Для этого нужно создать соответствующую таблицу в БД. Но сейчас я этот момент освещать не буду. Думаю в каком-нибудь следующем уроке мы затронем эту тему.
Далее идет серия настроек для Ваших cookie, если Вы их используете то можете здесь придать префикс, прописать домен, указать путь и сделать их безопасными.

Например так:

$config['cookie_prefix'] = "mycookie";
$config['cookie_domain'] = ".mysite.ru";
$config['cookie_path'] = "/";
$config['cookie_secure'] = TRUE;

global_xss_filtering
Если поставить TRUE, то все входящие данные — cookie, post еще какие-то, будут проходить сперва через фильтр, который обезопасит Ваш сайт от XSS атак. Если Вы не используете в Вашем приложении куки, у Вас нету никаких форм для ввода данных, то можете оставить FALSE.

Ну и на последок

rewrite_short_tags
Тут рекомендую поставить TRUE, так как возможно, Ваш хостинг не будет поддерживать альтернативный синтаксис PHP. А если он не поддерживает и Вы используете данный синтаксис, то могут возникнуть проблемы :)

Так что ставим эту настройку в TRUE и тогда Ваш альтернативный синтаксис будет заменен обычным и никаких неожиданностей не будет. На этом все :)

Если урок Вам был полезен, нажмите на любую кнопку ниже— буду благодарен :) Всем удачи и следите за ходом событий ;)

Комменты

  • ДОбрый день. бубен не помогает.. если permitted_uri_chars =» оставить пустым, что может быть страшного?
    просто даже с ?A-Za-zА-Яа-я=\s&0-9~%\.:_- постоянно бросает ошибку, только так работает((

  • Здравствуте, Дмитрий!
    Используя стандартную капчу CI при отправке формы обратной связи, столкнулся с непонятной проблемой: в браузере файрфокс и opera валидация капчи проходит нормально, в chrome и IE — валидация не проходит (хотя капчу ввожу правильно). Подскажите пожалуйста, в чем может быть проблема. Настройки CodeIgniter 2.0.?
    Спасибо.

    • Дмитрий Валак: 30-01-2014 в 9:19

      Здравствуйте. Проблема скорее всего в самом функционале, написанным Вами. Посмотрите все ли просто, понятно и логично написано.

  • Подскажите установлен редактор ckeditor на сайт сделанном на cogeignitore. При нажатии на кнопку сохранить в редакторе, информация введенное в поле не сохраняется, а исчезает.

  • Дмитрий не подскажиш как ты решил вопрос с Disallowed Key Characters.
    а именно если пользователь передаст к примеру http://2develop.ru/
    то в стандартном режиме он выведет белую страницу с сообщением Disallowed Key Characters ….
    а хотелось бы как у вас , чтоб он перебрасывал на 404 страницу ….
    не поделитесь решением а то уж запарился искать ….
    Спасибо Виктор

  • Я начинаю изучать codeigniter с редактором phpdesinger
    У меня проблема Какие сделать настройки и где , чтобы длинные строки автоматичесикипереносились на следующую строку
    С уважением Карпенко Леонид Михайлович

    • Дмитрий Валак: 04-04-2013 в 10:17

      Здравствуйте. Перейдите во вкладку Tools->Preferences слева выберите Editor и поставьте галочку напротив Wordwrap

  • Здравствуйте,уважаемые!Может кто знает,как реализовать такую идею на Codeignitor,что бы шапка сайта на каждой странице была разная.К каждой странице делать отдельный controler?Мозг уже кипит,кажиться проще на простом php.

    • Дмитрий Валак: 17-03-2013 в 20:12

      Здравствуйте.
      Способов можно много разных придумать.
      Можно просто условиями if и сравнивать со страницей на которой находится человек.
      Можно сделать с использованием БД, для каждой страницы сохранить в БД свое изображение и выводить.

  • если с дублями ничего сделать нельзя, то один из вариатов убирать их из индерсирования поисковыми системами в файле robots.txt. Под АГС не попадёшь — позаботься лучше об уникальности контента и естестенных ссылкаx — и будет тебе счастье

  •  

    12 06 2012 | Дмитри

    Может поможет. В файле routes.php пропишите 

    $route['news']            = 'index.php/news';

     

  • Здравствуйте, Дмитрий. Я уже ваш постоянный посетитель)
    Такая проблема — по методу, описанному в стандартной документации убрал index.php из url сайта. Т.е. создал .htaccess в корне сайта вот такой. 
    RewriteEngine on
    RewriteCond $1 !^(index\.php|images|robots\.txt)
    RewriteRule ^(.*)$ /index.php/$1 [L]
    И поставил $config['index_page'] = '';  
    Такой вопрос, сейчас сайт и работает без index.php , но он по url с index.php тоже открывается… как сделать так, чтобы сайт с index.php перенаправлялся на без index.php… 
    Пример: страница http://сайт.ру/news одинакова со страницей http://сайт.ру/index.php/news

    • Дмитрий Валак: 12-06-2012 в 16:49

      Честно, даже не задавался таким вопросом.
      По сути если прописаны на сайте ссылке без index.php, то кто будет их сам в ручную переделывать в адресной строке и зачем это надо? :)
      Я возможно завтра подумаю, а так первое что приходит в голову так это покопаться в файле routes.php в config папке.