PHP 29

[Codeigniter3]외부 라이브러리(ex PHPExcel) 연동하기(?)

Codeigniter(이하 ci)에 엑셀 다운로드를 하기 위해 PHPExcel 라이브러리를 연동하는 방법입니다. 우선 앞에 링크를 통해서 원본을 다운로드 받으세요. Download ZIP 부분을 클릭하시면 됩니다(이제 더 운영(?) 안 하는 레파지토리라서 아마 이 링크 클릭하셔서 받으셔도 될 겁니다). 그런 후 zip 파일을 압축 푼 후 ftp로 업로드를 합니다. 아마 압출을 풀면 안에 파일이나 폴더가 저렇게 나올 겁니다. 저것들 다 업로드 하지 마시고 Classes 폴더 안에 있는 PHPExcel 폴더랑 PHPExcel.php 파일만 업로드 하시면 됩니다. 위치는 /application/third_party/ 여기입니다. 그런 후 /application/libraries/ 디렉토리에 Excel.php ..

PHP 2022.11.18

강제로 404 발생시키기

가끔 다른 권한을 가진 계정에게는 보이지 말아야 할 페이지가 있습니다.그럴 땐 외부에서 눈치를 못 채도록 아예 없는 페이지처럼 하면 됩니다.이렇게까지 하는 이유는 개발자는 아닌데 여기에 대해서 조금 아는 사람이 권한을 가진 사람 컴퓨터에서 url을 봤나 봅니다. 그걸 강제로 치고 들어가던데 그럴 경우 권한이 없다는 경고창을 띄우거나 일단 페이지에 무언가가 있다는 걸 보였을 경우엔 뭐냐고 묻습니다. 그래서 애초에 없는 페이지로...

PHP 2022.11.09

관리자 로그인에 구글 OTP 적용하기

우선 자신의 폰에 맞게 OTP 앱을 다운로드 받아서 설치합니다. 그리고 여기로 가셔서 파일을 다운로드 받습니다. 실제로 사용할 파일은 PHPGangsta 안에 있는 GoogleAuthenticator.php 이 파일입니다. 그러니 이 파일만 다운로드 받으셔도 됩니다. PHP 5.5, 5.6에서 실행됩니다. OTP를 이용한 로그인 순서는 대략 아래와 같습니다. 로그인 페이지에서 아이디, 패스워드를 입력합니다(ajax). 아이디, 패스워드가 정확할 경우 레이어 창을 띄웁니다(일반적인(?) 로그인처럼 로그인 버튼을 눌렀을 때 다음 페이지로 이동을 시키는 게 제일 편하지만 간혹 그 자리에서 레이어 창 같은 걸 뜨게 하는 걸 좋아하는 클라이언트가 있습니다). OTP가 뜨고 여기에서 앱을 사용해서 QR 코드를 비추..

PHP 2022.06.23

[고도몰5]커스터마이징하기 전에 알아야 할...

쇼핑몰 솔루션 중 제가 아는 건 메이크샵, 카페24, 고도몰, 퍼스트몰, 영카트 대충 이 정도네요. 이 중에서 기능 추가가 가능한 솔루션은 고도몰(중에서도 5), 퍼스트몰, 영카트입니다. 메이크샵과 카페24는 스킨단만 수정이 가능하고 나머지는 솔루션에서 제공해 주는 코드 이외엔 수정이 불가능합니다. 그래서 자기가 원하는 기능을 추가하려는 사용자들은 고도몰5, 퍼스트몰, 영카트 이 중에서 고릅니다. 그리고 커스터마이징을 직접 하거나 가능한 업체를 찾아서 요청을 합니다. 자신이 어느 회사에 속한 개발자라면 혹시라도 이 셋 중 하나 커스터마이징을 담당하는 업무를 맡을 확률이 조금은 있습니다. 저 같은 경우는 영카트 빼고는 둘 다 들어와서 처음에 난감했던 적이 있었네요. 그나마 퍼스트몰의 경우는 Codeigni..

PHP 2022.05.11

오늘이 1년 중에 몇 주차인지?

이렇게 하면 오늘이 01로 나옵니다. 1월 4일도 마찬가지로 01이 나옵니다. 이런 계산이 나오는 이유는 시작을 월요일로 잡았기 때문에 그렇습니다. 그런데 일요일을 시작으로 잡아야 하는 경우가 있습니다. 이런 경우는 아래처럼 하시면 됩니다.위 코드를 실행해 보면 알겠지만 date로 한 건 01로 나오지만 strftime으로 한 건 02로 나옵니다. 전자는 3일(월요일)부터 9일(일요일)까지를 한 주로 취급했고 후자는 2일(일요일)부터 8일(토요일)까지를 한 주로 취급했기 때문입니다.

PHP 2022.01.03

[Codeigniter]동적인 모델 호출?? call a model dynamically??

$models = ['aa', 'bb', 'cc']; foreach($models as $value) { $this->CI->load->model($value."_model"); $this->CI->$value."_model"->test(); } 가끔 정해지지 않은 Controllers, Models 혹은 그 안에 있는 메소드를 호출해야 하는 경우가 있습니다. 거의 없겠지만 있긴 합니다(위는 억지 예이니 태클은 반사합니다). 3번째 줄까지는 괜찮은데 4번째 줄은 실행이 되지 않습니다. 이런 경우 $this->CI->{$value."_model"}->test(); 이런 식으로 중괄호로 묶어 주면 정상적으로 실행이 됩니다. 뭐 다들 아시겠지만...

PHP 2021.06.15

mail() 함수로 메일을 보낼 때 보낸 사람이 이상하게 보일 경우

PHPMailer 같은 서드 파티 라이브러리를 사용하지 않고 PHP 내장 함수(mail())를 사용해서 메일을 보낼 때 종종 왜 보내는 사람 이름이 그지 같냐고 하는 소릴 듣습니다. Nobody 혹은 데몬 이름(이메일 주소 포함) 같은 게 갑니다. 이런 경우는 아래처럼 -f를 붙여 주시면 됩니다. $additional_parameters = "-ftest@test.com"; mail($to, $subject, $message, $additional_headers, $additional_parameters); 웹 호스팅일 경우 보안적인 이유 때문에 사용이 안 되는 경우가 많으니 -f를 붙였다고 메일이 발송 안 된다면 자신의 웹 호스팅에선 저 명령어가 안 먹는다 생각하고 일찌감치 PHPMailer 같은 라이..

PHP 2021.06.07