<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
<title>즐거운 코딩 생활 ( funyphp ) &amp;gt; community &amp;gt; Codeigniter</title>
<link>http://funyphp.com/bbs/board.php?bo_table=codeigniter</link>
<language>ko</language>
<description>Codeigniter (2022-12-26 11:05:01)</description>

<item>
<title>[ codeigniter ] ciboard admin처럼 폴더만들고 사용하기 - 로그인 연결</title>
<link>http://funyphp.com/bbs/board.php?bo_table=codeigniter&amp;amp;wr_id=23</link>
<description><![CDATA[<p> /application/controllers/Main.php 35줄 아래</p>
<p>강제 바로가기  설정</p>
<p>header('Location:'.base_url('/원하는경로');</p>
<p> </p>
<p>그리고 </p>
<p>/application/hooks/Common.php 182줄 하단에</p>
<p>152 ~ 181줄을 복사해서. url_segment_admin =&gt; url_segment_xxx 로 변경</p>]]></description>
<dc:creator>웹지기</dc:creator>
<dc:date>2022-12-26T11:05:01+09:00</dc:date>
</item>


<item>
<title>[ codeigniter ] Migration 사용방법</title>
<link>http://funyphp.com/bbs/board.php?bo_table=codeigniter&amp;amp;wr_id=22</link>
<description><![CDATA[<p>ciboard 에서 migrations 클래스 사용법</p>
<p> </p>
<p>1. 마이그레이션 활성화 비활성화</p>
<p> - application/config/migration.php 14줄</p>
<p>   $config['migration_enabled'] = FALSE;  부분을  =&gt; TRUE로 변경</p>
<p> - 32줄 타입선택 ==&gt; timestamp</p>
<p> - $config['migration_version'] = 0;   ===&gt; 버젼설정</p>
<p> - 폴더설정 ==&gt; $config['migration_path'] = APPPATH.'migrations/'; </p>
<p> </p>
<p>2. 마이그레이션 만들기 </p>
<p> - application/migrations/20220111090000_blog.php  </p>
<p>   (블로그에 대한 DB를 만들때 예제 - timestamp로 설정된 값 _ db명.php )</p>
<p> - 코드 내용 대략</p>
<p>&lt;?php defined('BASEPATH') OR exit('No direct script access allowed');</p>
<p>class Migration_Blog extends CI_Migration {</p>
<p>    public function up() {</p>
<p>            $this-&gt;dbforge-&gt;add_field(array(</p>
<p>            'id' =&gt; array(</p>
<p>                    'type' =&gt; 'INT',</p>
<p>                    'constraint' =&gt; 5,</p>
<p>                    'unsigned' =&gt; TRUE,</p>
<p>                    'auto_increment' =&gt; TRUE</p>
<p>            ),</p>
<p>            'name' =&gt; array(</p>
<p>                    'type' =&gt; 'VARCHAR',</p>
<p>                    'constraint' =&gt; '100'</p>
<p>            ),</p>
<p>            'description' =&gt; array(</p>
<p>                    'type' =&gt; 'TEXT',</p>
<p>                    'null' =&gt; TRUE</p>
<p>            ),</p>
<p>        ));</p>
<p>        $this-&gt;dbforge-&gt;add_key('id', TRUE);</p>
<p>        $this-&gt;dbforge-&gt;create_table('blog');</p>
<p>    }</p>
<p><br /></p>
<p>    public function down()</p>
<p>    {</p>
<p>        $this-&gt;dbforge-&gt;drop_table('blog');</p>
<p>    }</p>
<p></p>
<p>}</p>
<p> </p>
<p>3. 실행 클래스 만들기</p>
<p> - application/controllers/Migrate.php</p>
<p> &lt;?php</p>
<p>defined('BASEPATH') OR exit('No direct script access allowed');</p>
<p><br /></p>
<p>/**</p>
<p> * 마이페이지와 관련된 controller 입니다.</p>
<p> */</p>
<p> class Migrate extends CB_Controller</p>
<p>{</p>
<p>    /**</p>
<p>     * 모델을 로딩합니다</p>
<p>     */</p>
<p>    protected $models = array();</p>
<p><br /></p>
<p>    /**</p>
<p>     * 헬퍼를 로딩합니다</p>
<p>     */</p>
<p>    protected $helpers = array('form', 'array');</p>
<p><br /></p>
<p>    function __construct()</p>
<p>    {</p>
<p>        parent::__construct();</p>
<p><br /></p>
<p>        /**</p>
<p>         * 라이브러리를 로딩합니다</p>
<p>         */</p>
<p>        $this-&gt;load-&gt;library(array('pagination', 'querystring'));</p>
<p><br /></p>
<p>    }</p>
<p><br /></p>
<p>    public function index()</p>
<p>    {</p>
<p>        // 이벤트 라이브러리를 로딩합니다</p>
<p>        $eventname = 'event_mypage_index';</p>
<p>        $this-&gt;load-&gt;event($eventname);</p>
<p><br /></p>
<p>        $view = array();</p>
<p>        $view['view'] = array();</p>
<p><br /></p>
<p>        $this-&gt;load-&gt;library('migration');</p>
<p>        if ($this-&gt;migration-&gt;current() === FALSE)</p>
<p>        {</p>
<p>            echo $this-&gt;migration-&gt;error_string();</p>
<p>            //show_error($this-&gt;migration-&gt;error_string());</p>
<p>        }</p>
<p>        else</p>
<p>        {</p>
<p>            echo 'Table Migrated Successfully.';</p>
<p>        }</p>
<p>    }</p>
<p>} </p>
<p> </p>
<p>소스코드 실행( ciboard 기준 )  ::: http://localhost/migrate<br />이런식으로 실행을 하게 되면 DB table이 없다면 새로 생성이 되고 있다면 버젼을 바꾸게 되겠지요??</p>]]></description>
<dc:creator>웹지기</dc:creator>
<dc:date>2022-01-11T15:31:08+09:00</dc:date>
</item>


<item>
<title>[ codeigniter ] 도메인 포워딩시 로그인이 안되는 문제 (IE P3P 규약 때문에 발생)</title>
<link>http://funyphp.com/bbs/board.php?bo_table=codeigniter&amp;amp;wr_id=21</link>
<description><![CDATA[<p>ciboard 사용중에 다음과 같은 오류(?)가 발생해서 검색을 해봤더니 "IE P3P 규약"때문에 그렇다고 하더라.</p>
<p> </p>
<p>도메인으로 IP를 포워딩하게 되면 로그인이나 세션에 문제가 없어야 하지만, 로그인이 되지 않는 경우가 있다.</p>
<p>이 경우 오류를 확인해 보면 javascript 오류가 발생해서 아예 전송을 못하거나 이상한 오류들이 발생한다.</p>
<p>그리고 소스보기를 통해 확인해 보면 form 부분이 현재 도메인으로 되어있지 않고 IP형식 이거나 포워딩 이전의</p>
<p>ip주소를 나타내게 된다. </p>
<p> </p>
<p>이 현상은 포워딩된 도메인에서 session을 생성했지만 로그인 후 ip로 되어있는 주소로 돌아가서</p>
<p>다시한번 새로운 session을 생성하므로 2개의 session이 존재하게 되어 생기는 문제이다.</p>
<p> </p>
<p>이를 해결하기 위해서 다음의 구문을 추가한다.(php asp jsp)</p>
<p> </p>
<p>포워딩시 세션유지 문제 (IE P3P  규약)</p>
<p>참고사이트 :  http://www.w3.org/TR/2002/REC-P3P-20020416/</p>
<p>php 경우</p>
<p>&lt;?php @header('P3P: CP="NOI CURa ADMa DEVa TAIa OUR DELa BUS IND PHY ONL UNI COM NAV INT DEM PRE"');?&gt;</p>
<p>jsp 경우</p>
<p>&lt;% response.addHeader("P3P", "CP-NOI CURa ADMa DEVa TAIa OUR DELa BUS IND PHY ONL UNI COM NAV INT DEM PRE"); %&gt;</p>
<p>asp 경우</p>
<p>&lt;% Response.AddHeader "P3P", "CP-NOI CURa ADMa DEVa TAIa OUR DELa BUS IND PHY ONL UNI COM NAV INT DEM PRE" %&gt;</p>]]></description>
<dc:creator>웹지기</dc:creator>
<dc:date>2022-01-03T12:12:16+09:00</dc:date>
</item>


<item>
<title>[ codeigniter ] ciboard - 회원설정 회원관리 엑셀다운로드 오류</title>
<link>http://funyphp.com/bbs/board.php?bo_table=codeigniter&amp;amp;wr_id=20</link>
<description><![CDATA[<p>application/controllers/admin/member/Members.php 1185줄</p>
<p>$mgroup = '';  =&gt;  $mgroup = array();</p>
<p> </p>
<p>881줄</p>
<p>$info = '';  =&gt; $info = array();</p>]]></description>
<dc:creator>웹지기</dc:creator>
<dc:date>2021-11-08T12:29:39+09:00</dc:date>
</item>


<item>
<title>[ codeigniter ] ciboard에서 admin의 폴더처럼 다른 파일들도 정리해서 사용하고 싶다면</title>
<link>http://funyphp.com/bbs/board.php?bo_table=codeigniter&amp;amp;wr_id=19</link>
<description><![CDATA[<p><span style="font-size:14px;color:#ff0000;"><b>Admin 의 구조(Lite, pro 모두 동일)를 파악해서 /admin 과 같은 방식으로  </b></span></p>
<p><span style="font-size:14px;color:#ff0000;"><b>콘트롤러와 views를 구성하는 방식을 설명 </b></span></p>
<p><br /></p>
<p>- application &gt; controllers &gt; admin :: admin 폴더가 관리자의 기본폴더 </p>
<p>- 응용 ::::: application &gt; controllers &gt; mes :: mes 폴더로 사용이 가능한 폴더 </p>
<p><br /></p>
<p>- views &gt; admin &gt; ADMIN_SKIN admin/ADMIN_SKIN 폴더가 관리자의 기본폴더 </p>
<p>- 응용 ::::: views/mes/MES_SKIN :: mes 폴더로 사용이 가능한 폴더  </p>
<p><br /></p>
<p><span style="color:#ff0000;font-size:14px;"><b>ciboard에서 admin의 폴더처럼 다른 파일들도 정리해서 사용하고 싶다면 </b></span></p>
<p><span style="color:#ff0000;"><b><span style="font-size:14px;">다음과 같은 방법으로 변경을 해서 사용해야 한다. </span></b></span></p>
<p><br /></p>
<p><span style="font-size:14px;color:#ff0000;"><b>1) application/config/config.php </b></span></p>
<p> 원하는 설정을 정의(기본경로로 사용될 디렉토리명)  </p>
<p> $config['uri_segment_mes'] = 'mes'; //18줄에 추 </p>
<p><br /></p>
<p><span style="color:#ff0000;"><b><span style="font-size:14px;">2) application/config/constants.php </span></b></span></p>
<p> mes로 사용할 스킨 디렉토리 정의 </p>
<p> defined('ADMIN_SKIN') OR define('ADMIN_SKIN', 'basic'); 와 비슷한 방법으로 정의 </p>
<p> defined('MES_SKIN') OR define('MES_SKIN', 'basic'); //100줄에 원하는 설정을 추가(기본경로로 사용될 디렉토리명)  </p>
<p><br /></p>
<p><span style="font-size:14px;color:#ff0000;"><b>3) application/libaries/Managelayout.php </b></span></p>
<p> function admin( 부분을 복사해서 붙어 새로운 레이아웃으로 사용할 함수 생성) </p>
<p> 복사한 함수를 =&gt; function mes( 새로 레이아웃 함수로 함수명 변경) </p>
<p> 함수내 admin으로 되어 있는 부분을 mes로 변경 </p>
<p> if (!preg_match('/^adm_menu_([0-9]{3}).*\.php$/', $entry, $m)) //117줄 </p>
<p> =&gt; if (!preg_match('/^mes_menu_([0-9]{3}).*\.php$/', $entry, $m)) </p>
<p><br /></p>
<p> $data['admin_page_menu'] = array(); //126줄 </p>
<p> =&gt; $data['mes_page_menu'] = array(); </p>
<p><br /></p>
<p> $res = config_item('admin_page_menu'); //129줄 </p>
<p> =&gt; $res = config_item('mes_page_menu'); </p>
<p><br /></p>
<p> $data['admin_page_menu'] += config_item('admin_page_menu'); //130줄 </p>
<p> =&gt; $data['mes_page_menu'] += config_item('mes_page_menu'); </p>
<p><br /></p>
<p> if (uri_string() !== config_item('uri_segment_admin')) { //134~136줄 </p>
<p>    list($data['menu_dir1'], $data['menu_dir2']) = explode('/', str_replace(config_item('uri_segment_admin') . '/', '', uri_string())); </p>
<p>    $data['menu_title'] = element(0, element(element('menu_dir2', $data), element('menu', element(element('menu_dir1', $data), element('admin_page_menu', $data))))); </p>
<p> =&gt; if (uri_string() !== config_item('uri_segment_mes')) { </p>
<p>    list($data['menu_dir1'], $data['menu_dir2']) = explode('/', str_replace(config_item('uri_segment_mes') . '/', '', uri_string())); </p>
<p>    $data['menu_title'] = element(0, element(element('menu_dir2', $data), element('menu', element(element('menu_dir1', $data), element('mes_page_menu', $data))))); </p>
<p><br /></p>
<p> $data['layout_skin_path'] = config_item('uri_segment_admin') . '/' . ADMIN_SKIN; //145줄 </p>
<p> =&gt; $data['layout_skin_path'] = config_item('uri_segment_mes') . '/' . MES_SKIN; </p>
<p><br /></p>
<p> $data['index_url'] = admin_url($data['menu_dir1'] . '/' . $data['menu_dir2']); //147줄 </p>
<p> =&gt; $data['index_url'] = mes_url($data['menu_dir1'] . '/' . $data['menu_dir2']); </p>
<p><br /></p>
<p><span style="color:#ff0000;"><b><span style="font-size:14px;">4) application/config/admin_menu_000.php 파일을 본인이 원하는 파일로 변경 </span></b></span></p>
<p> admin_menu_000.php ==&gt; mes_menu_000.php 와 같은 식임.  </p>
<p> 파일에 들어가서 $config['admin_page_menu']['config'] 로 정의된 부분을  </p>
<p> $config['mes_page_menu']['config'] 와 같은 형태로 실제 사용할 명으로 변경  </p>
<p><br /></p>
<p><span style="color:#ff0000;"><b><span style="font-size:14px;">5) application/helpers/CB_url_helper.php </span></b></span></p>
<p> admin_url 함수를 복사해서 붙여넣기를 하고  </p>
<p> /** </p>
<p> * Admin 페이지 주소를 return 합니다 </p>
<p> */ </p>
<p> if ( ! function_exists('admin_url')) { </p>
<p>    function admin_url($url = ''){ </p>
<p>        $url = trim($url, '/'); </p>
<p>        return site_url(config_item('uri_segment_admin') . '/' . $url); </p>
<p>    } </p>
<p> } </p>
<p><br /></p>
<p> mes_url로 바꿔준다.  </p>
<p> /** </p>
<p> * mes 페이지 주소를 return 합니다 </p>
<p> */ </p>
<p> if ( ! function_exists('mes_url')) { </p>
<p>    function mes_url($url = ''){ </p>
<p>        $url = trim($url, '/'); </p>
<p>        return site_url(config_item('uri_segment_mes') . '/' . $url); </p>
<p>    } </p>
<p> } </p>
<p><br /></p>
<p><span style="font-size:14px;color:#ff0000;"><b>6) application/controllers/mes 폴더 생성 및 파일생성 </b></span></p>
<p> Application/controllers/mes/ 하위에 원하는 controller파일을 생성 </p>
<p> 예) Main.php =&gt; mes의 메인 </p>
<p> 예) config/Cbconfigs.php =&gt; 기본환경설정파일 </p>
<p> 이런식으로 Main은 mes접속시 보여질 파일이 됨 </p>
<p> config/Cbconfigs.php 는 기존 admin의 기본설정파일을 복사해서 예제로 사용해 봄 </p>
<p> 이런식으로 파일을 복사하고 Cbconfigs.php 파일내의 경로를 모두 mes에 맞게 수정해줘야 한다. </p>
<p> 이때 주의할점은 수정해야 할 함수와 수정하지 말아야 할 함수를 잘 찾아서 수정해줘야 한다. </p>
<p> URL 정의 부분 admin_url =&gt; mes_url </p>
<p> Layout 정의 부분  </p>
<p> $view['layout'] = $this-&gt;managelayout-&gt;admin($layoutconfig, $this-&gt;cbconfig-&gt;get_device_view_type());  </p>
<p> =&gt; $view['layout'] = $this-&gt;managelayout-&gt;mes($layoutconfig, $this-&gt;cbconfig-&gt;get_device_view_type()); </p>
<p><br /></p>
<p> echo $this-&gt;load-&gt;view('admin/' . ADMIN_SKIN . '/' . $this-&gt;pagedir . '/day_excel', $view, true); </p>
<p> =&gt; echo $this-&gt;load-&gt;view(config_item('uri_segment_mes').'/' . MES_SKIN . '/' . $this-&gt;pagedir . '/day_excel', $view, true); </p>
<p><br /></p>
<p> 변경하지 말아야 할 함수 </p>
<p> $per_page = admin_listnum(); //목록수 불러오는 함수 </p>
<p> -&gt;get_admin_list( //목록내용 불러오는 함수 </p>
<p><br /></p>
<p> $data['index_url'] = admin_url($data['menu_dir1'] . '/' . $data['menu_dir2']);  </p>
<p> 부분에서 admin을 mes로 변경  </p>
<p> $data['index_url'] = mes_url($data['menu_dir1'] . '/' . $data['menu_dir2']);  </p>
<p><br /></p>
<p><span style="color:#ff0000;font-size:14px;"><b>7) view/폴더에 mes/basic 폴더를 생성 </b></span></p>
<p> layout.php, layout_popup.php, main.php 등의 파일을 만든다.  </p>
<p> layout.php, layout_popup.php 파일에 다음을 추가 해준다.  </p>
<p> layout의 경로를 mes로 수정 admin_url() =&gt; mes_url()  </p>
<p> javascript에서는 mes_url 추가   </p>
<p> var cb_admin_url = "&lt;?php echo admin_url(); ?&gt;";  </p>
<p> var cb_mes_url = "&lt;?php echo mes_url(); ?&gt;";  </p>
<p> var cb_board = "&lt;?php echo isset($view) ? element('board_key', $view) : ''; ?&gt;";  </p>
<p> var cb_board_url = &lt;?php echo ( isset($view) &amp;&amp; element('board_key', $view)) ? 'cb_url + "/' . config_item('uri_segment_board') . '/' . element('board_key', $view) . '"' : '""'; ?&gt;;  </p>
<p> var cb_device_type = "&lt;?php echo $this-&gt;cbconfig-&gt;get_device_type() === 'mobile' ? 'mobile' : 'desktop' ?&gt;";  </p>
<p> var cb_csrf_hash = "&lt;?php echo $this-&gt;security-&gt;get_csrf_hash(); ?&gt;";  </p>
<p> var cookie_prefix = "&lt;?php echo config_item('cookie_prefix'); ?&gt;";  </p>
<p><br /></p>
<p> 다른 파일의 경로 </p>
<p> config_item('uri_segment_mes') / MES_SKIN / board/post/index.php </p>
<p> config_item('uri_segment_mes') / MES_SKIN /config/cbconfigs/ 파일과 같은 경로를 갖게 된다. </p>
<p> </p>
<p>8) 관리자로 접근하면 로그인이 가능하게 수정</p>
<p> uri_segment_admin =&gt; uri_segment_mes 로 변경</p>
<p> </p>
<p>// mes 페이지</p>
<p>if ($CI-&gt;member-&gt;is_admin() !== 'super' &amp;&amp; $CI-&gt;uri-&gt;segment(1) === config_item('uri_segment_mes')) {</p>
<p><span style="white-space:pre;"></span>  redirect('login?url=' . urlencode(current_full_url()));</p>
<p>}</p>
<p><br /></p>
<p>if (config_item('use_lock_ip') &amp;&amp; $CI-&gt;uri-&gt;segment(1) === config_item('uri_segment_mes') &amp;&amp; $CI-&gt;cbconfig-&gt;item('admin_ip_whitelist')) {</p>
<p><span style="white-space:pre;"></span>  $whitelist = $CI-&gt;cbconfig-&gt;item('admin_ip_whitelist');</p>
<p><span style="white-space:pre;"></span>  $whitelist = preg_replace("/[\r|\n|\r\n]+/", ',', $whitelist);</p>
<p><span style="white-space:pre;"></span>  $whitelist = preg_replace("/\s+/", '', $whitelist);</p>
<p><span style="white-space:pre;"></span>  if (preg_match('/(&lt;\?|&lt;\?php|\?&gt;)/xsm', $whitelist)) {</p>
<p><span style="white-space:pre;"></span>    $whitelist = '';</p>
<p><span style="white-space:pre;"></span>  }</p>
<p><span style="white-space:pre;"></span>  if ($whitelist) {</p>
<p><span style="white-space:pre;"></span>    $whitelist = explode(',', trim($whitelist, ','));</p>
<p><span style="white-space:pre;"></span>    $whitelist = array_unique($whitelist);</p>
<p><span style="white-space:pre;"></span>    if (is_array($whitelist)) {</p>
<p><span style="white-space:pre;"></span>      $CI-&gt;load-&gt;library('Ipfilter');</p>
<p><span style="white-space:pre;"></span>      if ( ! Ipfilter::filter($whitelist)) {</p>
<p><span style="white-space:pre;"></span>        $title = '관리자 페이지';</p>
<p><span style="white-space:pre;"></span>        $message = '현재 접속하신 아이피는 관리자 페이지 접근이 차단되었습니다';</p>
<p><span style="white-space:pre;"></span>        show_error($message, '500', $title);</p>
<p><span style="white-space:pre;"></span>        exit;</p>
<p><span style="white-space:pre;"></span>      }</p>
<p><span style="white-space:pre;"></span>    }</p>
<p><span style="white-space:pre;"></span>  }</p>
<p> </p>
<p>}</p>]]></description>
<dc:creator>웹지기</dc:creator>
<dc:date>2021-11-05T17:06:28+09:00</dc:date>
</item>


<item>
<title>[ codeigniter ] ciboard 게시판 확장 필드 추가시 오류</title>
<link>http://funyphp.com/bbs/board.php?bo_table=codeigniter&amp;amp;wr_id=18</link>
<description><![CDATA[<p>[ codeigniter ] ciboard 게시판 확장 필드 추가시 오류</p>
<p><span style="color:#333333;font-family:'Nanum Gothic', '나눔고딕', NanumGothic, '돋움', Dotum, Arial, Helvetica, sans-serif;font-size:14px;background-color:#ffffff;">/application/controllers/Board_post.php </span><span style="color:#333333;font-family:'Nanum Gothic', '나눔고딕', NanumGothic, '돋움', Dotum, Arial, Helvetica, sans-serif;font-size:14px;background-color:#ffffff;">513줄</span></p>
<p><span style="color:#333333;font-family:'Nanum Gothic', '나눔고딕', NanumGothic, '돋움', Dotum, Arial, Helvetica, sans-serif;font-size:14px;background-color:#ffffff;">$extra_content = array();</span><br style="margin:0px;padding:0px;color:#333333;font-family:'Nanum Gothic', '나눔고딕', NanumGothic, '돋움', Dotum, Arial, Helvetica, sans-serif;font-size:14px;background-color:#ffffff;" /><br style="margin:0px;padding:0px;color:#333333;font-family:'Nanum Gothic', '나눔고딕', NanumGothic, '돋움', Dotum, Arial, Helvetica, sans-serif;font-size:14px;background-color:#ffffff;" /><span style="color:#333333;font-family:'Nanum Gothic', '나눔고딕', NanumGothic, '돋움', Dotum, Arial, Helvetica, sans-serif;font-size:14px;background-color:#ffffff;">/application/controllers/Board_write.php </span><span style="color:#333333;font-family:'Nanum Gothic', '나눔고딕', NanumGothic, '돋움', Dotum, Arial, Helvetica, sans-serif;font-size:14px;background-color:#ffffff;">1832줄</span></p>
<p><span style="color:#333333;font-family:'Nanum Gothic', '나눔고딕', NanumGothic, '돋움', Dotum, Arial, Helvetica, sans-serif;font-size:14px;background-color:#ffffff;">$extra_content = array();</span></p>
<p><span style="color:#333333;font-family:'Nanum Gothic', '나눔고딕', NanumGothic, '돋움', Dotum, Arial, Helvetica, sans-serif;font-size:14px;background-color:#ffffff;">이렇게 변경</span></p>]]></description>
<dc:creator>웹지기</dc:creator>
<dc:date>2021-10-18T15:11:36+09:00</dc:date>
</item>


<item>
<title>[ codeigniter ] ciboard $config['base_url'] 자동 설정 하기</title>
<link>http://funyphp.com/bbs/board.php?bo_table=codeigniter&amp;amp;wr_id=17</link>
<description><![CDATA[<p>/application/config/config.php 64줄</p>
<p> $config['base_url'] = '';</p>
<p> $config['base_url'] = ((isset($_SERVER['HTTPS']) &amp;&amp; $_SERVER['HTTPS'] == "on") ? "https" : "http");</p>
<p> $config['base_url'] .= "://" . $_SERVER['HTTP_HOST'];</p>
<p> $config['base_url'] .= str_replace(basename($_SERVER['SCRIPT_NAME']), "", $_SERVER['SCRIPT_NAME']);</p>]]></description>
<dc:creator>웹지기</dc:creator>
<dc:date>2021-09-01T14:02:46+09:00</dc:date>
</item>


<item>
<title>[ codeigniter ] php7.x 게시판 추가 항목 설정시 오류 대처(Board_post.php)</title>
<link>http://funyphp.com/bbs/board.php?bo_table=codeigniter&amp;amp;wr_id=16</link>
<description><![CDATA[<p>/application/contorllers/Board_post.php 594줄</p>
<p>$extra_content = '';  php7.x 대처 배열로 변경</p>
<p>$extra_content = array(); //</p>]]></description>
<dc:creator>웹지기</dc:creator>
<dc:date>2021-08-30T10:47:02+09:00</dc:date>
</item>


<item>
<title>[ codeigniter ] HTMLPurifier.standalone.php php7.4 {$i} {0} 등에 관한 오류 대처 수정</title>
<link>http://funyphp.com/bbs/board.php?bo_table=codeigniter&amp;amp;wr_id=15</link>
<description><![CDATA[<p> php7.4에서 </p>
<p><span class="hljs-variable" style="font-family:inherit;font-style:inherit;font-variant:inherit;font-weight:inherit;white-space:inherit;font-size:13px;margin:0px;padding:0px;border:0px;line-height:inherit;vertical-align:baseline;">$str</span><span style="font-family:inherit;font-style:inherit;font-weight:inherit;white-space:inherit;font-size:13px;"> = </span><span class="hljs-string" style="font-family:inherit;font-style:inherit;font-variant:inherit;font-weight:inherit;white-space:inherit;font-size:13px;margin:0px;padding:0px;border:0px;line-height:inherit;vertical-align:baseline;">"test"</span><span style="font-family:inherit;font-style:inherit;font-weight:inherit;white-space:inherit;font-size:13px;">;</span></p>
<p><span class="hljs-keyword" style="font-family:inherit;font-style:inherit;font-variant:inherit;font-weight:inherit;white-space:inherit;font-size:13px;margin:0px;padding:0px;border:0px;line-height:inherit;vertical-align:baseline;">echo</span><span style="font-family:inherit;font-style:inherit;font-weight:inherit;white-space:inherit;font-size:13px;">(</span><span class="hljs-variable" style="font-family:inherit;font-style:inherit;font-variant:inherit;font-weight:inherit;white-space:inherit;font-size:13px;margin:0px;padding:0px;border:0px;line-height:inherit;vertical-align:baseline;">$str</span><span style="font-family:inherit;font-style:inherit;font-weight:inherit;white-space:inherit;font-size:13px;">{</span><span class="hljs-number" style="font-family:inherit;font-style:inherit;font-variant:inherit;font-weight:inherit;white-space:inherit;font-size:13px;margin:0px;padding:0px;border:0px;line-height:inherit;vertical-align:baseline;">0</span><span style="font-family:inherit;font-style:inherit;font-weight:inherit;white-space:inherit;font-size:13px;">});</span></p>
<p><span style="font-family:inherit;font-style:inherit;font-weight:inherit;white-space:inherit;font-size:13px;">이러한 코드로 사용이 가능했던 부분이 수정되어</span></p>
<p><span class="hljs-variable" style="font-family:inherit;font-style:inherit;font-variant:inherit;font-weight:inherit;white-space:inherit;font-size:13px;margin:0px;padding:0px;border:0px;line-height:inherit;vertical-align:baseline;">$str</span><span style="font-family:inherit;font-style:inherit;font-weight:inherit;white-space:inherit;font-size:13px;"> = </span><span class="hljs-string" style="font-family:inherit;font-style:inherit;font-variant:inherit;font-weight:inherit;white-space:inherit;font-size:13px;margin:0px;padding:0px;border:0px;line-height:inherit;vertical-align:baseline;">"test"</span><span style="font-family:inherit;font-style:inherit;font-weight:inherit;white-space:inherit;font-size:13px;">;</span></p>
<p><span class="hljs-keyword" style="font-family:inherit;font-style:inherit;font-variant:inherit;font-weight:inherit;white-space:inherit;font-size:13px;margin:0px;padding:0px;border:0px;line-height:inherit;vertical-align:baseline;">echo</span><span style="font-family:inherit;font-style:inherit;font-weight:inherit;white-space:inherit;font-size:13px;">(</span><span class="hljs-variable" style="font-family:inherit;font-style:inherit;font-variant:inherit;font-weight:inherit;white-space:inherit;font-size:13px;margin:0px;padding:0px;border:0px;line-height:inherit;vertical-align:baseline;">$str[</span><span class="hljs-number" style="font-family:inherit;font-style:inherit;font-variant:inherit;font-weight:inherit;white-space:inherit;font-size:13px;margin:0px;padding:0px;border:0px;line-height:inherit;vertical-align:baseline;">0]</span><span style="font-family:inherit;font-style:inherit;font-weight:inherit;white-space:inherit;font-size:13px;">);</span></p>
<p><span style="font-family:inherit;font-style:inherit;font-weight:inherit;white-space:inherit;font-size:13px;">이러한 코드로 사용을 해야 오류가 발생하지 않는다.</span></p>
<p><span style="font-size:13px;">/plugin/htmnlpurifier/HTMLPurifier.standalone.php 3908 줄</span></p>
<p><span style="font-size:13px;">$in = ord($str{$i}); </span><span style="font-size:13px;">php7.4 대처 구문 수정 =&gt;{$i} 대신 [$i] 사용</span></p>
<p><span style="font-size:13px;">$in = ord($str[$i]);</span></p>
<p><span style="font-size:13px;">HTMLPurifier.standalone.php 14197줄</span></p>
<p><span style="font-size:13px;">if ($raw{0} != '(') { </span><span style="font-size:13px;">php7.4 대처 구문 수정 =&gt;{0} 대신 [0] 사용</span></p>
<p><span style="font-size:13px;">if ($raw[0] != '(') {</span></p>
<p><span style="font-size:13px;">HTMLPurifier.standalone.php 20530 줄</span></p>
<p>if ($attr['size']{0} == '+' || $attr['size']{0} == '-') { <span style="font-size:13px;">php7.4 대처 구문 수정 =&gt;{0} 대신 [0] 사용</span></p>
<p>if ($attr['size'][0] == '+' || $attr['size'][0] == '-') { </p>
<p><span style="font-size:13px;"> </span></p>
<p><br /></p>]]></description>
<dc:creator>웹지기</dc:creator>
<dc:date>2021-08-30T10:44:59+09:00</dc:date>
</item>


<item>
<title>[ codeigniter ] ciboard 회원의 확장기능 사용시 오류</title>
<link>http://funyphp.com/bbs/board.php?bo_table=codeigniter&amp;amp;wr_id=14</link>
<description><![CDATA[<p>/application/controllers/admin/member/Members.php 509줄</p>
<p>$html_content = ''; ===&gt; $html_content = array();</p>]]></description>
<dc:creator>웹지기</dc:creator>
<dc:date>2021-08-23T11:15:09+09:00</dc:date>
</item>


<item>
<title>[ CodeIgniter ] ci_export 설치 방법 설명</title>
<link>http://funyphp.com/bbs/board.php?bo_table=codeigniter&amp;amp;wr_id=13</link>
<description><![CDATA[<p>/application/config/config.php =&gt; base url 수정( 기본 설정 되어있음 )</p>
<p>/application/config/config.php =&gt; encryption_key ( 암호키 세션 사용시 - 기본 설정 되어 있음 )</p>
<p>/application/config/database.php =&gt; database 설정</p>]]></description>
<dc:creator>웹지기</dc:creator>
<dc:date>2021-07-19T14:06:04+09:00</dc:date>
</item>


<item>
<title>[ Codeigniter ] ciboard install/setp5 500 error [ xampp ]</title>
<link>http://funyphp.com/bbs/board.php?bo_table=codeigniter&amp;amp;wr_id=9</link>
<description><![CDATA[<p><img src="https://www.funyphp.com/data/editor/1907/20190718145144_112384c385dd5f703b1d01a24da36687_7xq6.png" alt="324234.png" style="width:924px;height:545px;" /></p>
<p>xampp 환경에 ciboard설치시 install/step5 부분에서 </p>
<p>자꾸 500 에러가 발생해서 확인해 보았다.</p>
<p> </p>
<p>php.ini 파일 설정 확인</p>
<p>max_execution_time=30</p>
<p>으로 되어있는경우 30초의 뒤에는 <span style="color:#646464;font-family:'Segoe UI', Arial, 'Malgun Gothic', Gulim, sans-serif;text-transform:uppercase;background-color:#ffffff;">HTTP ERROR 500 </span>오류를 뱉어내고 종료시킨다.</p>
<p>db의 일부와 table의 일부 컬럼은 저장이 되지만 전부가 저장되어있지 않아</p>
<p>홈페이지에 접속을 하게 되면 로그인도 되지 않는다</p>
<p>관리자의 계정정보도 저장이 되어 지지않았다.</p>
<p> </p>
<p>php.ini 의 max_execution_time=1000 정도로 여유를 주고 </p>
<p>db를 지우고 db를 새로 생성해서 설치하면 정상 설치가 되고 접속도 원할하게 된다.</p>]]></description>
<dc:creator>웹지기</dc:creator>
<dc:date>2019-07-18T14:49:47+09:00</dc:date>
</item>


<item>
<title>[ codeigniter ] php5.6 이상일 때 application/json 전송시 오류</title>
<link>http://funyphp.com/bbs/board.php?bo_table=codeigniter&amp;amp;wr_id=8</link>
<description><![CDATA[<p>php5.6 이상에서 content-type application/json로 전송시 $_POST로 데이터를 받을 수 가 없다.</p>
<p>row데이터에서 값을 가져와서 파싱해야 하고 $HTTP_ROW_POST_DATA가 php5.6이상에서는 deprecated 되기 때문이다</p>
<p><br /></p>
<div style="padding:10px 10px 10px 18px;border-width:1px 1px 1px 4px;border-style:solid;border-color:#f42857;font-size:13px;line-height:19px;font-family:'courier 10 pitch', Courier, monospace;vertical-align:baseline;background-color:#051e30;color:#ffffff;">
   <p>$aData = var_export(file_get_contents('php://input'),TRUE);</p>
   <p>$aArr    = json_decode(str_replace("'", "", $aData), true);</p>
   </div>
<p><br /></p>
<p>codeigniter는 input 클래스의 $this-&gt;input-&gt;raw_input_stream 을 사용하면됨.</p>]]></description>
<dc:creator>웹지기</dc:creator>
<dc:date>2019-05-07T21:24:21+09:00</dc:date>
</item>


<item>
<title>[ codeigniter ] 폼 전송시 데이터 짤림, input post의 전송 개수</title>
<link>http://funyphp.com/bbs/board.php?bo_table=codeigniter&amp;amp;wr_id=7</link>
<description><![CDATA[<p>codeigniter ciboard의 리스트 페이지의 경우</p>
<p>선택된 페이지의 값만을 넘기는게 아니라, 해당 폼의 모든 input 값을 넘겨버린다.</p>
<p> </p>
<p><img src="https://funyphp.com/data/editor/1905/20190509114025_0b64b0f1b82fb855d75064cc97c8f5b2_96hh.png" alt="_post_data.png" style="width:601px;height:746px;" /></p>
<p>print_r2($this-&gt;input-&gt;post()); 로 값을 확인 할 경우</p>
<p>input으로 되어있는 모든값들을 전송하므로</p>
<p>php.ini 에서 설정되어있는 </p>
<p>max_input_vars = 1000  </p>
<p>이라는 값 때문에 </p>
<p>총 1000개의 input 값만을 전송하고 나머지 값은 모두 날려 버린다.</p>
<p>그렇다 이 값을 </p>
<p>max_input_vars = 2000</p>
<p>max_input_vars = 5000</p>
<p> </p>
<p>뭐 이런식으로 늘릴 수는 있다.</p>
<p>하지만 이것이 능사는 아니다.</p>
<p>이 값을 json으로 변형을 해서 던져준다거나, 아니면 input check에서 선택된 값만을 전송한다거나</p>
<p>해당페이지를 페이징처리하여 input의 데이터가 1000가 넘지 않게 조정을 하는게 맞을 것 같다.</p>]]></description>
<dc:creator>웹지기</dc:creator>
<dc:date>2019-04-26T20:56:18+09:00</dc:date>
</item>


<item>
<title>[ codeigniter ] ciboard 폴더 초기 설정 권한변경</title>
<link>http://funyphp.com/bbs/board.php?bo_table=codeigniter&amp;amp;wr_id=6</link>
<description><![CDATA[<p>ciboard 최초 설치 시 또는 데이터 이전시 디렉토리 권한....</p>
<p> </p>
<p><img src="https://funyphp.com/data/editor/1905/20190509114438_0b64b0f1b82fb855d75064cc97c8f5b2_b23n.png" alt="folder_chang.png" style="width:671px;height:488px;" /></p>
<p> </p>
<p>uploads 디렉토리</p>
<p>application/cache 디렉토리</p>
<p>application/logs 디렉토리</p>
<p>권한을 모두 707로 변경</p>]]></description>
<dc:creator>웹지기</dc:creator>
<dc:date>2019-03-27T18:57:01+09:00</dc:date>
</item>

</channel>
</rss>
