[CodeIgniter] User Agent 클래스 사용 시 OS 정보 추가하는 방법

코드이그나이터(CodeIgniter)에서 제공되는 user_agent 클래스의 os 정보 추줄 메소드 사용 시 “Uknown Windows OS” 라고 출력되는 경우가 있습니다. 이는 user agent 값의 문자열 중 os 정보를 읽었으나 정확한 버전을 알 수 없어 “Window이긴한데 버전을 모르겠어”라는 식으로 출력이 되는 것입니다. 즉, “이 문자열은 Windows의 몇 버전이다.”라고 정의를 해줘야 합니다. 코드이그나이터 2.x 버전 기준으로 /application/config/user_agents.php 파일에서 정의를 추가해줄Continue reading “[CodeIgniter] User Agent 클래스 사용 시 OS 정보 추가하는 방법”

[CI] 로그인시 Session은 처리됐는데 로그인이 안되는 경우

하아.. 이걸로 고생을 좀 한 것 같습니다. 여러 PC로 로그인 테스트를 하던 중 Session은 문제 없이 처리가 되었는데 로그인이 되지 않았습니다. Session 등록 직후 값을 찍어보면 찍히는데 로그인 완료 화면에서 Session을 찍어보면 빈 값으로 출력되는 문제가 있었습니다. 에러로그에도 아무런 문제가 나타나지 않고 특정 PC에서만 발생하니 더 난해한 문제였습니다. 그런데 간단하게 해결이 되었습니다. 해결 방법 1.Continue reading “[CI] 로그인시 Session은 처리됐는데 로그인이 안되는 경우”

[CI] Session 데이터를 DB로 저장하는 방법

Session은 일반 적으로 파일로 저장하거나 DB에 저장할 수 있습니다. 기본 값으로는 파일로 저장되도록 설정이 되어있습니다. 이를 DB로 저장하는 방법을 소개드립니다. 1. /application/config/config.php 파일을 열어 아래 내용과 같이 수정 합니다.

sess_table_name은 ci_session으로 이름을 달리하고 싶은 경우 변경하셔도 무방합니다. 단, sess_cookie_name 의 값도 변경된 이름과 동일하게 맞춰주셔야 합니다. 2. ci_session 테이블을 만듭니다. 저장될 DB 테이블을 설정하셨다면 테이블이Continue reading “[CI] Session 데이터를 DB로 저장하는 방법”

[CI] php.ini에서 error_reporting 설정을 해도 반영이 안되는 경우

php.ini에서 아무리 error_reporting 값을 변경해도 CI에서는 반영이 되지 않습니다. 그 이유는 CI 자체에서 error_reporting 값을 상수로 잡고 있기 때문입니다. 아주 친절하게 설명이 되어있지만 저처럼 이 부분을 미리 숙지하지 못해 php.ini를 마구 수정하거나 아파치를 무한 restart하는 삽질을 하는 불상사가 없기를 바랍니다. 아래 파일은 CI의 최상위 루트에 존재하는 index.php 파일의 일부입니다. 파일을 열자마자 보이는 내용입니다.  이렇게 친절한Continue reading “[CI] php.ini에서 error_reporting 설정을 해도 반영이 안되는 경우”

[CI] hwp 파일 업로드가 안되는 문제

파일 업로드 기능을 CodeIgniter 로 작업하고 있는데 hwp 파일만 서버가 인식하지 못하고 업로드를 하지 못하는 증상이 발생했습니다. 물론 다른 이미지나 zip, doc, ppt 파일등은 정상적으로 업로드가 되고 있었습니다. 전에 mime type 정보가 없어 업로드 되지 않는 증상이 있어 mimes.php 에도 이미 hwp 확장명에 대한 정의를 한 상태 였고 이상이 세팅에는 없었습니다.  이 상태로 개발서버로 옮겨 테스트해보니Continue reading “[CI] hwp 파일 업로드가 안되는 문제”

[Codeigniter] is_file, file_exists 사용시 경로를 FALSE로 리턴하는 경우

PHP로 개발 하면서 파일의 유무를 알기 위해서 is_file이나 file_exists 를 많이 사용합니다. 코드이그나이터에서도 예외는 아니죠. 하지만 기존 PHP와 코드이그나이터에서 위 함수의 경로를 읽어들이는 방법이 다릅니다. PHP에서는 웹사이트의 도큐먼트루트를 참초해 파일을 찾지만 코드이그나이터에서는 HOME 디렉토리에서 부터 파일을 찾게 됩니다. 그러므로 기존 PHP에서 사용하던 is_file(‘/aaa/bbb/ccc.js’); 와 같은 코드를 코드이그나이터에서 그대로 쓰면 FALSE값을 리턴하게 됩니다. 코드이그나이터에서는 경로를 시스템루트에서부터Continue reading “[Codeigniter] is_file, file_exists 사용시 경로를 FALSE로 리턴하는 경우”

[PHP] CI (코드이그나이터) POST 전송 보안처리 방법

POST로 들어오는 모든 값에 대해 XSS clean 처리를 해줌