글제목 선정이 조금 어려웠는데 말 그대로 사용자 정의 함수 1개를 선언하여 여러개의 함수를 재정의 후 사용할 수 있는 서포트 함수다. 나같은 경우 예전에 클래스로 컨트롤러 작업을 하다가 함수형태로도 사용하면 좋을 것 같아 따로 만들어서 계속 사용중이다. 아래는 method 함수와 예제이니 참고하여 사용하면 된다. method 함수 // method 함수 i···
PHP에서 다른 서버로 파일을 전송하는 방법에는 크게 CURL 통신과 소켓통신이 있다. 솔직히 회사에서 사용한다면 CURL 통신을 추천하지만 부득이하게 CURL 통신으로 안될경우 소켓통신을 사용하는것을 추천한다. 소켓통신이 사용하는 방법이 까다롭고, 서버에 따라 잘 안되는 경우도 있는것같다. 이번에 만든 함수같은 경우 전에 다른 서버에서 사용했던 함수였는데···
스크립트를 이용하여 AJAX처리를 하다보면 Form 데이터들을 추출해야할때가 있다. 물론 각각 뽑아서 써도 되지만, 소스코드 몇타를 더 쳐야하는 불편함이 있는데 나같은 경우 타이핑하는걸 정말 귀찮아 하기 때문에 최소한으로 타이핑을 할 수 있는걸 찾아서 쓰곤한다. 아래는 serializeObject 메소드 예제이니 참고하여 사용하면 된다. $.fn.seria···
최근 ajax 처리시 json 처리가 99%가 되면서 일반 데이터 처리 시 조금 편리한게 있나 찾아보니 JQUERY 에서 지원해주는 $.getJSON 을 찾았다. 솔직히 $.ajax 나 $.getJSON 이나 차이점은 거의 없지만서도, 그 몇타를 안치기 위해 찾아보긴했다. 그런데 쓰다보니 get 방식으로만 전송이 된다는것을 알게 되어 $.postJSON 을···
PHP 작업을 하다보면 정규식을 이용하여 처리를 해야할 상황이 많이 있다. 간단한 정규식 같은경우 외우고 다닌다 하지만, 조금 복잡한 상황의 정규식은 항상 쓸때마다 생각이 안난다. 오늘은 일반적인 글자들에 대한 정규식 체크를 소개한다. 늘 그렇듯 서론은 여기까지 하고 아래는 정규식 체크 예제이다. PHP 정규식 - preg_match - 유니코드 $arr_···
최근 스크립트를 많이 다루다 보니 라이브러리를 만들고 싶은 욕심이 생겼다. 개인적으로 순수 JAVASCRIPT 는 깊게 들어가면 잘 다루지 못하여 JQUERY 라이브러리를 통해 개발을 진행중이다. 이번에 개발중인 스크립트 같은경우 fullpage 스크립트와 같은 전체 페이지를 스크롤 하는 기능이다. 현존하는 비슷한 스크립트 중에서는 아래의 사이트가 가장 완···
최근들어 포스팅 쓰기가 너무 힘들어서 기존에 쓰던 에디터 자체를 변경하였다. 기존에 쓰던건 썸머노트(https://summernote.org/) 로 여러가지 커스텀하고 적용하기가 쉬워서 쓰긴했는데, 몇가지 고질적인 문제가 있어 이참에 다음에디터로 갈아타보았다. 솔직히 그나마 많이 만져본 네이버 스마트에디터로 가볼까 고민도 했었지만, 과거 티스토리 블로그 운···
세션의 경우 쿠키보다 한단계 높은 보안용도로 생각하는 경우가 많다. 하지만 전혀 보안이 높은건 아니다. 세션도 쿠키가 있어야만 작동되기 때문에 쿠키가 탈취당하는 순간 한방으로 끝날 수 있다. 따라서 세션의 보안성을 높이기 위해선 인증 쿠키를 여러개를 구어서 세션정보와 함께 대조하도록 만드는게 좋다. 즉 쉽게 설명하면 보안 인증 쿠키를 구어서 세션 변수내 ···
웹을 개발하다보면 index.php 죽이기라는 말을 많이들 들어봤을 것이다. 처음 index.php 죽이기를 접했을 시 이게 무슨 말이지? 하였지만 막상 사용하고 보니 이해가 되었다. index.php 란 쉽게 말해 말 그대로 index.php 자체를 없애고 내부적으로는 index.php 에서 모든걸 처리한다는 뜻이다. 그런데 말입니다. index.php···
이번 헬퍼 함수는 문자열에서 숫자만 남기고 모두 삭제하는 함수이다. 옵션으로 INT 도 있으며 해당 INT를 추가할 경우 정수만 추출할 수 있다. 추가로 넣은 기능의 경우 마이너스 기능이며, 처음 시작이 하이픈(-) 일경우 뒤에 숫자의 경우 모두 마이너스로 표현이 된다. getNumber() 함수 - 숫자만 남기고 삭제하는 함수 function getNu···
데이터 암호화/복호화 시 사용하는 암호화 방식에는 가장 많이 사용하는 base64 암호화 방식이 있다. 주로 데이터 전송시 암호화 후 복호화 하는 형태로 많이들 이용하는데 이번편은 해당 함수가 bas64 암호화로 된 데이터인지 검증할 수 있는 함수이다. base64chk() 함수 /* $base64_str => base64 encode string *···
PHP 기본함수로 제공되는 mail 함수에서 파일첨부가 가능한것은 알고 있었지만 실제로 메일에 파일을 직접 첨부를 하여 사용할일이 거의 없었기에 별도로 커스텀하지는 않았다. 서버환경에따라 보내는 서버 와 메일을 받는 서버쪽 환경에 따라 대용량은 첨부가 안되기 때문에 대부분 보내는쪽 서버에 파일업로드하고, 인증권한 키값(키값, 유효기간) 생성하여 URL 링크···
이번에 소개할 함수는 JSON 데이터가 정상적인지 체크하는 함수로 , 체크 방식은 JSON 디코드시 발생되는 에러 결과값을 이용하여 체크하도록 되어있다. 함수정의와 사용 방법은 아래와 같다. isjson() 함수 function isjson($string){ json_decode($string); switch (json_last_error()) { case···
블로그 사이트를 새로 개발하고 오픈한뒤로 꾸준히 봇들의 접속 로그가 확인이 되고 있다. 다만 로그상 보면 잡히지 않는 봇들이 너무 많은것같아 기존 함수를 좀더 보완해서 ua 에 bot 을 포함하여 전부 차단해 버렸다. 뭐 정상적인 봇이라고 하지만 Yeti 나 bingbot 같은경우 디도스 공격처럼 접속하기때문에 반드시 트래픽을 잘 확인해 봐야한다. 접속한 ···
# AJAX요청 체크하는 함수 예제function ajaxchk (){ if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') { return true; } else { return false;···
이미지 파일 업로드는 다방면에서 많이 사용되고 있으며, 기능만 잘 활용한다면 상당히 멋진 이미지 업로드 프로그램을 만들 수 있다. 나같은 경우 이미지 업로드 시 자바스크립트단에서 FileReader 를 통해 투명하게 미리 보여주고 서버단에서 압축 & 리사징 후에 다시 클라이언트단으로 와서 미리보기 이미지의 투명도를 없애는 방식으로 로딩을 구현했었다.···
str_contains() 함수의 경우 전체문자열, 찾을문자열을 파라미터로 받아서 있을 경우 TRUE, 없을경우 FALSE 를 RETURN 한다. 다만 이함수는 PHP8 이상 에서만 지원되므로 아래와 같이 서포트가 가능하다. 테스트결과보기 if (!function_exists('str_contains')) { function str_contains($hay···
PHP의 경우 변수가 정말 개방적이다. 때론 개방적이다 못해 해커로 부터 공격당하기 좋은 환경또한 제공해 준다. 과거 프로그램들을 보면 GET, POST 를 변수화 시켜서 사용하거나 php.ini 에서 변수화 설정을 통해 사용하기도 했었다. 이러한 방법은 편리하긴 하나 보안의 취약점이기도 하다. 현재와서는 함수 또는 클래스화 하여 처리하고 있지만 PHP만 ···