<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl"  href="/xslt/final.xslt"?><html>
  <head>
    <title>Codeigniter Blog. Step2: Приступаем к блогу. Ввод/вывод записей и комментариев</title>
    <meta name="css" content=""/>
    <meta name="js" content=""/>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <meta name="id" content="5"/>
    <link rel="alternate" type="application/rss+xml" title="RSS" href="/rss.xml"/>
  </head>
  <body>
    <div class="main">
      <div class="wrap">
        <div class="L">
          <h1><a href="/">..</a> / Codeigniter Blog. Step2: Приступаем к блогу. Ввод/вывод записей и комментариев</h1>
          <ol class="tags big">
            <li>
              <a href="/codeigniter-blog">codeigniter-blog</a>
            </li>
          </ol>
          <div class="myContent"><p>На <a href="/article/4">предыдущем шаге</a> освоили создание контроллера и вьюера. Теперь пришло время заняться собственно блогом. На этом шаге заведем базы двнных, вобьем туда фиктивные данные и попробуем вывести как в всамоделешном блоге.</p>
<h2>1.</h2>
<p>Создаем БД  (у меня - имя БД - "с3"). В ней таблицу с записями records:</p>
<div>

<table class="code">
    <tbody>
        <tr>
            <td><!--php-->
            <pre class="brush: plain">CREATE TABLE records (
id int(11) NOT NULL auto_increment,
title varchar(255) NOT NULL,
body text NOT NULL,
PRIMARY KEY  (id)
) ENGINE=MyISAM ;
INSERT INTO records VALUES (1, 'record1', 'Lorem ipsum dolor ... adipiscing elit');
INSERT INTO records VALUES (2, 'record2', 'Sed ut perspiciat ...  sit voluptatem');</pre><!--/php--></td>
        </tr>
    </tbody>
</table>
</div>
<h2>2.</h2>
<p>Прописываем в конфигурационом файле  /system/application/config/database.php атрибуты БД:</p>
<div>

<table class="code">
    <tbody>
        <tr>
            <td><!--php-->
            <pre class="brush: plain">$db['default']['hostname'] = "localhost";
$db['default']['username'] = "root";
$db['default']['password'] = "";
$db['default']['database'] = "c3";</pre><!--/php--></td>
        </tr>
    </tbody>
</table>
</div>
<h2>3.</h2>
<p>Поскольку начали работать с БД, необходимо подключить соответствующую библиотеку  В файле ле /system/application/config/autoload.php  находим строку:</p>
<div>
<div>$autoload['libraries'] = array();</div>
<p>и исправляем ее:</p>
<div>$autoload['libraries'] = array('database');</div>
</div>
<h2>4.</h2>
<p>Редактируем контроллер /system/application/controller/blog.php  дополняя его выводом данных из таблицы records</p>
<div>

<table class="code">
    <tbody>
        <tr>
            <td><!--php-->
            <pre class="brush: plain">function index()
{
        $data['query']=$this-&gt;    db-&gt;    get('records'); // выборка всех записей из табл. 
        $this-&gt;    load-&gt;    view('blog_view',$data); // отправка данных во вьюер
}</pre><!--/php--></td>
        </tr>
    </tbody>
</table>
</div>
<h2>5.</h2>
<p>Редактируем вьюер</p>
<div>

<table class="code">
    <tbody>
        <tr>
            <td><!--php-->
            <pre class="brush: plain">&lt;html&gt; 
&lt;body&gt;    
&lt;?
foreach ($query-&gt;    result() as $row)
{
      echo "&lt;h1&gt;    ".$row-&gt;    title."&lt;/h1&gt;    ";
      echo $row-&gt;    body;
}
?&gt;    
&lt;/body&gt;    
&lt;/html&gt;    </pre><!--/php--></td>
        </tr>
    </tbody>
</table>
</div>
<p>вызываем http://ci/  проверяем результат. Должны быть выведены все записи. Теперь можно перейти к комментариям</p>
<h2>6.</h2>
<p>Создаем таблицу комментариев и заранее записываем туда несколько записей.</p>
<div>

<table class="code">
    <tbody>
        <tr>
            <td><!--php-->
            <pre class="brush: plain">CREATE TABLE comments (
id int(11) NOT NULL auto_increment,
record_id int(11) NOT NULL,
author varchar(64) NOT NULL,
body text NOT NULL,
PRIMARY KEY  (id)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=5 ;
INSERT INTO comments VALUES (1, 1, 'Ayavryk', 'Wow!');
INSERT INTO comments VALUES (2, 1, 'Ivan Tyngylchav', 'No pasaran!');
INSERT INTO comments VALUES (3, 2, 'Semion Khyngulaev', 'Ooooooo! Cool!');
INSERT INTO comments VALUES (4, 2, 'Oolzhiin Olya', 'It''s realy nice!');</pre><!--/php--></td>
        </tr>
    </tbody>
</table>
</div>
<h2>7.</h2>
<p><strong>a)</strong> Создаем функцию контроллера для комментариев /system/application/controller/blog.php. В соответствии <a href="#" title="codeigniter.com/user_guide/general/routing.html" rel="nofollow" class="external">с принятой в Codeigniter адресацией</a>, по умолчанию она будет вызываться по адресу http://c3/index.php/blog/comments/номер_записи_блога. Адрес получается не ахти. Позже займемся приведением его в божеский вид.</p>
<div>
<p>

<table class="code">
    <tbody>
        <tr>
            <td><!--php-->
            <pre class="brush: plain">function comments()
{
        $id=$this-&gt;    uri-&gt;    segment(3); // получаем номер записи блога из URL 
        //(то что после третьего слэша)
        // подробнее о классе URI можно посмотреть в мануале
        $this-&gt;    db-&gt;    where('id',$id); // определяем условие выборки текущей записи
        // подробнее о реализации интерфейса к БД можно почитать в мануале
        $query1=$this-&gt;    db-&gt;    get('records'); // получам основную запись
        $data1 = $query1-&gt;    result();
        $this-&gt;    db-&gt;    where('record_id',$id); // определяем условие выборки комментариев
        $query2=$this-&gt;    db-&gt;    get('comments'); // получам комментарии из БД
        $data2 = $query2-&gt;    result();
        $this-&gt;    load-&gt;    view('comment_view', array('data1' =&gt;     $data1, 'data2' =&gt;     $data2));
        // в отличие от предыдущего контроллера здесь во вьюер передается массив данных. 
}</pre><!--/php--></td>
        </tr>
    </tbody>
</table>
</p>
</div>
<p>Внимание! Здесь и далее не рассматриваются вопросы безопасности. В частности, неизвестно, что может какой-нибудь паразит затолкать вместо номера записи блога и как это отработается в SQL.  Cтрока определяющая номер записи должна быть защищена от злоумышленников, т.е. id необходимо принудительно приведести к целому виду.  Но это отдельная тема  которой в этом примере не заморачиваемся. Подробнее об этом можно почитать <a href="#" title="ru.wikipedia.org/wiki/SQL_injection" rel="nofollow" class="external">здесь</a>  <br/>
<br/>
<strong>b) </strong>Создаем представление для комментариев /system/application/views/comment_view.php</p>
<div>

<table class="code">
    <tbody>
        <tr>
            <td><!--php-->
            <pre class="brush: plain">&lt;html&gt; 
&lt;body&gt;    
&lt;?
foreach ($data1 as $row1)
{
  echo "&lt;h1&gt;    ".$row1-&gt;    title."&lt;/h1&gt;    ";
  echo "&lt;p&gt;    ".$row1-&gt;    body."&lt;/p&gt;    &lt;hr/&gt;    ";
}
foreach ($data2 as $row2)
{
  echo "&lt;h4&gt;    ".$row2-&gt;    author."&lt;/h4&gt;    ";
  echo "&lt;p&gt;    ".$row2-&gt;    body."&lt;/p&gt;    &lt;hr/&gt;    ";
}
?&gt;    
&lt;/body&gt;    
&lt;/html&gt;    </pre><!--/php--></td>
        </tr>
    </tbody>
</table>
</div>
<p>c) Вызываем  http://ci/index.php/blog/comments/1 и проверяем результат.</p>
<h2>8.</h2>
<p>Разбираемся с результатами, выстраивая систему адресов блога.  По умолчанию, <a href="#" title="codeigniter.com/user_guide/general/routing.html" rel="nofollow" class="external">система адресов</a> в Codeigniter строится по принципу:</p>
<p>http://ИМЯ_САЙТА/index.php/ИМЯ_КОНТРОЛЛЕРА/ИМЯ ФУНКЦИИ(МЕТОДА) КОНТРОЛЛЕРА/ПАРАМЕРЫ/</p>
<p>Определенно такой адрес неэстетичен и по целому ряду причин нежелателен (подробнее см. <a href="#" title="ru.wikipedia.org/wiki/%D0%A7%D0%9F%D0%A3_%28%D0%98%D0%BD%D1%82%D0%B5%D1%80%D0%BD%D0%B5%D1%82%29" rel="nofollow" class="external">здесь</a>) Собственную обработку адресов можно реализовать при помощи <a href="#" title="www.yandex.ru/yandsearch?text=mod_rewrite+" rel="nofollow" class="external">mod_rewrite</a> - cпециального модуля Apache</p>
<p><strong>a)</strong> добавляем в корневую директорию .htaccess, который позволит избавиться от необходимости указания в адресе index.php</p>
<ol>
    <li>Options +FollowSymLinks</li>
    <li>Options -Indexes</li>
    <li>DirectoryIndex index.php</li>
    <li>RewriteEngine on</li>
    <li>RewriteCond $1 !^(index\.php|images|robots\.txt|public)</li>
    <li>RewriteCond %{REQUEST_URI} !\.(css¦js¦jpg¦gif)$</li>
    <li>RewriteCond %{REQUEST_FILENAME} !-f</li>
    <li>RewriteCond %{REQUEST_FILENAME} !-d</li>
    <li>RewriteRule ^(.*)$ /index.php/$1 [L,QSA]</li>
</ol>
<p>В этой конструкции исключается из обработки Codeigniter'ом все что указано в строке 5.  - картинки, стили и т.д. Все остальное перенаправляется на обработчик index.php, который исключается из адреса при помощи строки 9.</p>
<p><strong>b)</strong> находим в файле /system/application/config/config.php<br/>
строку:<br/>
<span class="codecolor">$config['index_page'] = "index.php"; <br/>
</span>убираем из нее index.php<br/>
<span class="codecolor">$config['index_page'] = "";</span><br/>
находим строку<br/>
<span class="codecolor">$config['base_url'] = ""; <br/>
</span>и записываем туда абсолютный адрес сайта<br/>
<span class="codecolor">$config['base_url'] = "http://ci/";</span></p>
<p>вызываем результат п.7 (комментарии к сообщению) уже по новому адресу: http://ci/blog/comments/1 <br/>
посмотреть исходные сообщения можно по адресу http://ci/</p>
<p>Надо сказать, что это лучше чем было, но все-таки далеко от желаемого. В идеале имена должны быть произвольными. Особенно важно это при переводе старых сайтов на новый движок.  Теоретически Codeigniter позволяет это делать (см. <a href="#" title="codeigniter.com/user_guide/general/routing.html" rel="nofollow" class="external">мануал</a>) . Но даже если не удастся с этим разобраться, можно всегда по-хамски (потому что в обход Codeigniter) переопределить все через  .htaccess</p>
<p><strong>c)</strong> связываем полученные страницы ссылками. Для этого воспользуемся вспомогательной функцией URL helper, которая отвечает за обработку адресов.  Для этого регистрируем их в файле автоподгрузки /system/application/config/autoload.php.<br/>
Находим строку:<br/>
<span class="codecolor">$autoload['helper'] = array();  </span><br/>
и исправляем ее:<br/>
<span class="codecolor">$autoload['helper'] = array('url'); </span><br/>
Регистрируем хелпер в контроллере</p>
<div>
<p>

<table class="code">
    <tbody>
        <tr>
            <td><!--php-->
            <pre class="brush: plain">function Blog()
{
parent::Controller();
  $this-&gt;    load-&gt;    helper('url');
}
</pre><!--/php--></td>
        </tr>
    </tbody>
</table>
</p>
<p><strong>d) </strong>добавляем во вьюер /system/application/views/comment_view.php строку с адресом главной страницы.</p>
<p>

<table class="code">
    <tbody>
        <tr>
            <td><!--php-->
            <pre class="brush: plain">&lt;html&gt;    
&lt;body&gt;    
&lt;?
        foreach ($data1 as $row1)
        {
                echo "&lt;h1&gt;    ".$row1-&gt;    title."&lt;/h1&gt;    ";
                echo "&lt;p&gt;    ".$row1-&gt;    body."&lt;/p&gt;    ";
        }
        foreach ($data2 as $row2)
        {
                echo "&lt;h3&gt;    ".$row2-&gt;    author."&lt;/h3&gt;    ";
                echo "&lt;p&gt;    ".$row2-&gt;    body."&lt;/p&gt;    ";
        }
                echo anchor('','Back'); // возврат на главную страницу
?&gt;    
&lt;/body&gt;    
&lt;/html&gt;    </pre><!--/php--></td>
        </tr>
    </tbody>
</table>
</p>
</div>
<p><br/>
аналогично исправляем вьюер блога, добавляя туда ссылки на отдельны записи блога /system/application/views/blog_view.php:</p>
<div>

<table class="code">
    <tbody>
        <tr>
            <td><!--php-->
            <pre class="brush: plain">&lt;html&gt; 
&lt;body&gt;    
&lt;?
foreach ($query-&gt;    result() as $row)
{
        echo "&lt;h1&gt;    ".$row-&gt;    title."&lt;/h1&gt;    ";
        echo "&lt;p&gt;    ".$row-&gt;    body."&lt;/p&gt;    ";
        echo anchor('blog/comments/'.$row-&gt;    id,'comments');
}
?&gt;    
&lt;/body&gt;    </pre><!--/php--></td>
        </tr>
    </tbody>
</table>
</div>
<p>И наблюдаем результат. Полуфабрикат блога без добавления записей готов</p>
<h2>9.</h2>
<p>Технический перерыв. Сохраняем все в папке <a href="/doc/step-by-step.zip">Step2</a></p></div>
          <ol class="tags big">
            <li class="date">2007-09-03</li>
            <li>
              <a href="/codeigniter-blog">codeigniter-blog</a>
            </li>
          </ol>
          <ol class="see"/>
          <ul class="comment">
            <li id="a7" title="a0">
              <a name="test" title="" rel="25.09.07"/>
              <div>Надо же, работает.<br/>И добавляется.<br/>Надо будет попробовать сделать такое же</div>
            </li>
            <li id="a9" title="a0">
              <a name="Arhat" title="" rel="12.10.07"/>
              <div>Тестирую все под XAMPP-ом, подскажи, как быть если у меня путь такой: http://localhost/ci/, а не http://ci/<br/>Что нужно поменять в .htaccess или менять нужно в файле /system/application/config/config.php """</div>
            </li>
            <li id="a15" title="a0">
              <a name="iniweb" title="" rel="19.11.07"/>
              <div>Имхо, нужно учить людей еще и защите, а то вот такие строчки:<br/>$id = $this-&gt;uri-&gt;segment(3);<br/>Легко смогут убить весь сайт.<br/>$id = intval($this-&gt;uri-&gt;segment(3)); - Если это число.</div>
            </li>
            <li id="a20" title="a0">
              <a name="111" title="" rel="22.01.08"/>
              <div>Надо же, работает.<br/>И добавляется.</div>
            </li>
            <li id="a25" title="a0">
              <a name="&#x414;&#x435;&#x43D;&#x438;&#x441;" title="" rel="04.02.08"/>
              <div>«http://ИМЯ_САЙТА/index.php/ИМЯ_КОНТРОЛЛЕРА/ИЯ ФУНКЦИИ(МЕТОДА) КОНТРОЛЛЕРА/ПАРАМЕРЫ/»<br/>Опечатка, наверно все таки «ИЯ» -&gt; «ИМЯ»</div>
            </li>
            <li id="a37" title="a0">
              <a name="&#x414;&#x435;&#x43D;&#x432;&#x435;&#x440;" title="" rel="18.04.08"/>
              <div>После правки .htaccess в error.log вываливается:<br/>/home/localhost/www/codeigniter/.htaccess: Invalid command ""xef"xbb"xbfOptions", perhaps mis-spelled or defined by a module not included in the server configuration</div>
            </li>
            <li id="a67" title="a15">
              <a name="&#x418;&#x441;&#x430;&#x430;&#x43A; &#x422;&#x44B;&#x43D;&#x433;&#x44B;&#x43B;&#x447;&#x430;&#x432;" title="erum.ru" rel="02.09.08"/>
              <div>"Нельзя объять необъятное" (с) Козьма Прутков.<br/>Тема безопасности рассмотрена очень хорошо во многих источниках. Я не видел смысла углубляться  в нее.</div>
            </li>
            <li id="a101" title="a0">
              <a name="sergoslav" title="traffpro.ru" rel="18.09.08"/>
              <div>Это будет излишним:<br/>**<br/>Регистрируем хелпер в контроллере<br/>function Blog()<br/>{<br/>parent::Controller();<br/>  $this-&gt;    load-&gt;    helper('url');<br/>}<br/>**<br/>либо стоит убрать из автозагрузки хелпер url</div>
            </li>
            <li id="a102" title="a0">
              <a name="the_hamster" title="nsk.lug.ru" rel="23.09.08"/>
              <div>Согласен с iniweb. Лучше сразу учить писать хороший код, ведь не все задумаются/успеют/смогут прочитать про защиту.<br/>p.s. И не обязательно заострять внимание, что вот это защита. Хотя при первом упоминание можно сделать и ссылку/пояснение.</div>
            </li>
            <li id="a105" title="a102">
              <a name="&#x418;&#x441;&#x430;&#x430;&#x43A; &#x422;&#x44B;&#x43D;&#x433;&#x44B;&#x43B;&#x447;&#x430;&#x432;" title="erum.ru" rel="23.09.08"/>
              <div>М.б. вы и правы. Но и я тоже прав отчасти :) И абзац целый написал и ссылку дал куда глядеть. "кто имеет уши слышать, да слышит!" Мф 25:19</div>
            </li>
            <li id="a118" title="a0">
              <a name="&#x42E;&#x440;&#x438;&#x439;" title="" rel="09.10.08"/>
              <div>При попытке посмотреть коммент - браузер выдает:<br/>The requested URL /CodeIgniter/index.php/blog/comments/1 was not found on this server.<br/>В чем может быть дело? VertrigoServ 2.21</div>
            </li>
            <li id="a119" title="a118">
              <a name="&#x42E;&#x440;&#x438;&#x439;" title="" rel="09.10.08"/>
              <div>Все разобрался в чем была проблема (:</div>
            </li>
            <li id="a239" title="a0">
              <a name="&#x415;&#x432;&#x433;&#x435;&#x43D;&#x438;&#x439;" title="QSAT.Ru" rel="12.02.09"/>
              <div>так, наверное, правельнее будет....<br/>foreach ($data1 as $row1)<br/>        {<br/>                echo "    ".$row1-&gt;    title."    ";<br/>                echo "    ".$row1-&gt;    body."    ";<br/>        <br/>        foreach ($data2 as $row2)<br/>        {<br/>                echo "    ".$row2-&gt;    author."    ";<br/>                echo "    ".$row2-&gt;    body."    ";<br/>        }<br/>}<br/>                echo anchor('','Back');</div>
            </li>
            <li id="a246" title="a0">
              <a name="&#x410;&#x43D;&#x442;&#x43E;&#x43D;" title="fortuna-gt.ru" rel="28.02.09"/>
              <div>Спасибо за статью, но у меня не работает :)<br/>Когда я иссключаю index.php из строки запроса мне денвер радостно сообщает "Ура заработало!" и отправляет на страницу <a title="http://localhost/denwer/" rel="nofollow" class="external" href="#">ссылка</a>  <br/>Подскажите пожалуйста, в чем проблема ?</div>
            </li>
            <li id="a258" title="a246">
              <a name="&#x414;&#x438;&#x43A;&#x441;" title="www.thedowntown.ru" rel="16.03.09"/>
              <div>в хтаццесс убери слеш перед index.php<br/>иначе он ссылается на корневую директорию сервера</div>
            </li>
            <li id="a262" title="a0">
              <a name="Guest" title="" rel="30.03.09"/>
              <div>У меня такая же проблема, как у Arhat'а. Сделал все как написано, получаю:<br/>"The requested URL /ci/blog/comments/2 was not found on this server."<br/>Подскажите, плиз, где искать ошибку?</div>
            </li>
            <li id="a263" title="a0">
              <a name="Stan" title="" rel="07.04.09"/>
              <div>А как на счёт title'ов в заголовках страницы, как их получить?</div>
            </li>
            <li id="a264" title="a263">
              <a name="&#x418;&#x441;&#x430;&#x430;&#x43A; &#x422;&#x44B;&#x43D;&#x433;&#x44B;&#x43B;&#x447;&#x430;&#x432;" title="erum.ru" rel="07.04.09"/>
              <div>Так же как и все остальные поля. - добавьте поле title в таблицу и выводите его в соответствующем месте. <br/>Для списка можно выводить title первой записи или еще что.</div>
            </li>
            <li id="a265" title="a0">
              <a name="&#x418;&#x43B;&#x44C;&#x44F;" title="" rel="07.04.09"/>
              <div>А как вывести столбцы из разных таблиц, если у них названия одинаковые?<br/>SELECT street.id, street.name,gorod.name<br/>        FROM street, gorod<br/>        WHERE street.id_gorod=gorod.id</div>
            </li>
            <li id="a283" title="a265">
              <a name="ANT" title="progik.ru" rel="14.05.09"/>
              <div>вот так:<br/>SELECT street.id, street.name,gorod.name as gorod_name<br/>FROM street, gorod<br/>WHERE street.id_gorod=gorod<br/>и потом использовать переменную gorod_name</div>
            </li>
            <li id="a361" title="a0">
              <a name="&#x412;&#x430;&#x441;&#x438;&#x43B;&#x438;&#x439;" title="mirdd.ru" rel="06.11.09"/>
              <div>htaccess при переезде на хостинг <br/>появилась ошибка No input file specified.<br/>=(</div>
            </li>
            <li id="a393" title="a0">
              <a name="&#x418;&#x432;&#x430;&#x43D;" title="" rel="06.12.09"/>
              <div>Спасибо за пример очень многое по работе с фрэймворком уяснилось .Думаю многие как и я ваш блок нашли в поисках живых примеров , заранее ознакомившись с документацией , так что смысла описывать защиту не нет.</div>
            </li>
            <li id="a496" title="a0">
              <a name="nikonorovsv" title="" rel="12.04.10"/>
              <div>Как создать базу данных?=) Понимаю, может быть вопрос не сюда, но все же.. в общих чертах... Для этого нужна специальная программа или просто Блокнотом?<br/>стоит denwer(PHP+mysql), CI работает нормально до этапа подключения БД..<br/>в целом мне интересно:<br/>расширение файла БД, где он хранится и с помощью чего создается.. дальше я сам)</div>
            </li>
            <li id="a508" title="a0">
              <a name="&#x412;&#x438;&#x43A;&#x442;&#x43E;&#x440;" title="www.freedom-56.ru" rel="07.05.10"/>
              <div>Привет, делал все по уроку выдает такую ошибку <br/>A Database Error Occurred<br/>Error Number: 1146<br/>Table 'c3.records' doesn't exist<br/>SELECT * FROM (`records`)<br/>на денвере <br/>Apache/2.2.4 (Win32) mod_ssl/2.2.4 OpenSSL/0.9.8d PHP/5.2.4 Server at localhost Port 80</div>
            </li>
            <li id="a509" title="a508">
              <a name="&#x412;&#x438;&#x43A;&#x442;&#x43E;&#x440;" title="www.freedom-56.ru" rel="07.05.10"/>
              <div>разобрался сам, ошибка была в бд</div>
            </li>
            <li id="a513" title="a496">
              <a name="Mihail" title="" rel="18.05.10"/>
              <div>В данвере есть "утилита" phpmyadmin, вызывается так: localhost/tools/phpmyadmin<br/>Никаких файлов создавать не нужно, никаких специальных программ не нужно. В phpmyadmin есть вкладка sql, вот там просто писать запросы из этой статьи, а файлы уже создадутся автоматически</div>
            </li>
            <li id="a515" title="a0">
              <a name="&#x41E;&#x43B;&#x435;&#x433;" title="" rel="19.05.10"/>
              <div>На шаге 5 выдает:<br/>A PHP Error was encountered<br/>Severity: Warning<br/>Message: Cannot modify header information - headers already sent by (output started at C:\Dokumente und Einstellungen\o.deev\Eigene Dateien\xampp\xampp\htdocs\ci_full\system\application\controllers\blog.php:18)<br/>Filename: codeigniter/Common.php<br/>Line Number: 360<br/>An Error Was Encountered<br/>You have not selected a database type to connect to.<br/>БД и таблица в ней созданы.</div>
            </li>
            <li id="a524" title="a0">
              <a name="GTAlex" title="blog.gtalex.ru/" rel="01.06.10"/>
              <div>Та же проблема что у Василия:<br/>No input file specified<br/>при перезде на хостинг</div>
            </li>
            <li id="a532" title="a0">
              <a name="morre" title="" rel="07.07.10"/>
              <div>Сделал как всё описано в этом уроке , при коннекте выкидывает <br/>404 Page Not Found<br/>The page you requested was not found.</div>
            </li>
            <li id="a533" title="a0">
              <a name="morre" title="" rel="07.07.10"/>
              <div>На 3тем шаге этого урока <br/>A PHP Error was encountered<br/>Severity: Warning<br/>Message: Cannot modify header information - headers already sent by (output started at Z:\home\localhost\CodeIgniter\system\application\controllers\blog.php:16)<br/>Filename: codeigniter/Common.php<br/>Line Number: 360<br/>An Error Was Encountered<br/>Unable to load the requested file: blog_view.php</div>
            </li>
            <li id="a534" title="a0">
              <a name="cinewbie" title="" rel="08.07.10"/>
              <div>спс, Дикс, помогло.<br/>правильный .htaccess для случая:<br/><a title="http://&#x418;&#x41C;&#x42F;_&#x421;&#x410;&#x419;&#x422;&#x410;/&#x418;&#x41C;&#x42F;_&#x41F;&#x420;&#x418;&#x41B;&#x41E;&#x416;&#x415;&#x41D;&#x418;&#x42F;/index.php/&#x418;&#x41C;&#x42F;_&#x41A;&#x41E;&#x41D;&#x422;&#x420;&#x41E;&#x41B;&#x41B;&#x415;&#x420;&#x410;/&#x418;&#x42F;" rel="nofollow" class="external" href="#">ссылка</a>   ФУНКЦИИ(МЕТОДА)КОНТРОЛЛЕРА/ПАРАМЕРЫ/<br/>действительно должен быть без слеша в последней строке:<br/>Options +FollowSymLinks<br/>Options -Indexes<br/>DirectoryIndex index.php<br/>RewriteEngine on<br/>RewriteCond $1 !^(index\.php|images|robots\.txt|public)<br/>RewriteCond %{REQUEST_URI} !\.(css¦js¦jpg¦gif)$<br/>RewriteCond %{REQUEST_FILENAME} !-f<br/>RewriteCond %{REQUEST_FILENAME} !-d<br/>RewriteRule ^(.*)$ index.php/$1 [L,QSA]<br/>Уважаемый автор, исправь статью - указанное тобой содержимое файла .htaccess попило много моей крови (я CI по твоим статьям осваивал) :)</div>
            </li>
            <li id="a552" title="a509">
              <a name="&#x414;&#x43C;&#x438;&#x442;&#x440;&#x438;&#x439;" title="" rel="06.08.10"/>
              <div>А что конкретно было с бд?<br/>У меня такая-же проблема, но вот тока посты он выводит, а каменты нет.</div>
            </li>
            <li id="a553" title="a552">
              <a name="&#x414;&#x43C;&#x438;&#x442;&#x440;&#x438;&#x439;" title="" rel="07.08.10"/>
              <div>Хм. Действительно ошибка была в бд. Точнее у меня был какой-то глюк. Обе таблицы я копипастил из примера и записи она выводила, а каменты нет. Потом заметил что в каментах была другай кодировка у таблицы. Таблицу каментов я удалил и потом добавил вручную. Но проблема не пропала. phpMyAdmin показывает что они 2 есть и я потом даже просто запрос из текста ошибки вводил в майадмине и он мне выводил результат, а CI говорил что тупо таблицы нет. Решил создать всю бд заново, но уже в программе NaviCat и когда открыл - офигел. Там реально была только одна таблица, хотя phpMyAdmin показывал что их 2.<br/>Целый день на это убил. И вот такой получился рецепт.</div>
            </li>
            <li id="a567" title="a0">
              <a name="&#x421;&#x435;&#x440;&#x433;&#x435;&#x439;" title="" rel="20.10.10"/>
              <div>У меня тоже косяк:<br/>Not Found<br/>The requested URL /blog/comments/1 was not found on this server.</div>
            </li>
            <li id="a573" title="a0">
              <a name="Jeki aka zer0" title="" rel="21.11.10"/>
              <div>выдает через раз ошибку "A Database Error Occurred<br/>Unable to select the specified database: с3<br/>". Причем жму F5 - выдает коменты, жму еще раз - ошибку. и так поочередно. в чем проблема ?</div>
            </li>
            <li id="a580" title="a0">
              <a name="Jeki aka zer0" title="" rel="19.12.10"/>
              <div>Разобрался - проблема была в денвере</div>
            </li>
            <li id="a587" title="a0">
              <a name="Bad URL" title="" rel="04.01.11"/>
              <div>На версии 1.7.3 возникла бага, начал формироватся следующая урл:<br/><a title="http://localhost/1/CI/localhost/1/CI/blog/comments/1" rel="nofollow" class="external" href="#">ссылка</a>  <br/>Вылечил путем, замены на следующие строки:<br/>$config['index_page'] = ""; // в конфиге<br/>echo anchor('blog/comments/'.$row-&gt;    id,'comments'); // в блог_вив<br/>echo anchor('../../','Back'); // в комент_вив</div>
            </li>
            <li id="a588" title="a587">
              <a name="&#x423;&#x43F;&#x441;.." title="" rel="04.01.11"/>
              <div>короче чет я с конфигом напартачил, одним словом надо было быть по внимательнее. В лечении не нуждается...</div>
            </li>
            <li id="a592" title="a0">
              <a name="Vika" title="serverstar.ru" rel="14.01.11"/>
              <div>ИМХО, главное концепцию системы понять, и будет легко работать. Пока нравиться!</div>
            </li>
            <li id="a603" title="a0">
              <a name="&#x421;&#x435;&#x440;&#x451;&#x433;&#x430;" title="" rel="24.03.11"/>
              <div>как в navicat создать такую же таблицу?</div>
            </li>
            <li id="a604" title="a118">
              <a name="Faba" title="" rel="31.03.11"/>
              <div>так в чем?? хоть бы написал...</div>
            </li>
            <li id="a610" title="a0">
              <a name="&#x410;&#x43D;&#x434;&#x440;&#x435;&#x439;" title="" rel="13.04.11"/>
              <div>Спасибо за полезный пост!:) Очень кстати!</div>
            </li>
            <li id="a611" title="a553">
              <a name="&#x414;&#x435;&#x43D;&#x438;&#x441;" title="" rel="13.04.11"/>
              <div>Дак проблема в phpmyadmin была? В mysql смотрел?</div>
            </li>
            <li id="a680" title="a0">
              <a name="&#x41C;&#x430;&#x43A;&#x441;&#x438;&#x43C; &#x41F;&#x435;&#x440;&#x435;&#x43F;&#x435;&#x43B;&#x438;&#x446;&#x430;" title="" rel="22.01.12"/>
              <div>Пользуюсь этим фреймворком уже несколько лет. Удобная справка и вообще хорошо документирован.<br/>Кстати, появилось руководство пользователя на русском для версии 2.0.0<br/><u class="external" title="codeigniter.su">http://codeigniter.su</u></div>
            </li>
          </ul>
        </div>
      </div>
      <div class="R">
        <a href="/" title="&#x41D;&#x430; &#x433;&#x43B;&#x430;&#x432;&#x43D;&#x443;&#x44E;"/>
      </div>
    </div>
    <div id="li"/>
  </body>
</html>

