PHP에서 exec 함수의 경우 쉘 명령어(shell)를 수행할 수 있도록 도와주는 함수이며 그만큼 사용시에 보안에 신경 써야한다. 대부분 가공된 데이터를 기준 한정된 코드로 가공하여 많이 사용하게 되는데 특정 명령어를 사용할때 출력되는 내용이 전체가 아닌 마지막 부분만 노출되는 경우가 있다. 분명 쉘(shell)에서 입력할때는 정상 출력 되지만 PHP e···
치환이란 어떠한 것을 다른 무언가로 교체하는 것을 의미한다. 언뜻 보면 바꾸는 것과 비슷해 보이나 치환은 바꾼다는 뜻보단 대체로서의 의미가 맞는 말이다. 웹 프로그래밍의 경우 HTML 소스와 함께 병행하여 쓰다보니 소스가 상당히 보기 불편해 지는 경우가 많다. 이럴때 사용할 수 있는게 치환자인데 이는 비공개 소스에 대한 유저용 치환자를 제공해 주는 템플릿 ···
캡챠는 사용자 입력 검증 관련된 개발하다보면 한번쯤 사용했거나 들어본적이 있을 것이다. 쉽게 설명하면 입력후 제줄된 문서를 진짜 타이핑해서 쓴건지 아니면 별도 프로그램으로 이용하여 제줄한건지 사전에 체크할 수 있는 시스템이다. 이러한 캡챠는 지속적으로 기술이 발전되고 있지만 자동입력 프로그램 또한 지속 발전하여 보안코드 마저 인식 후 뚫어버리는 경우가 있다···
PHP에서 예외처리를 할 수 있는 try ~ catch 라는 제어문은 try 블록 내에 소스코드 내에 작성하고 예외처리가 있을 경우 catch 블록으로 보내서 처리를 할 수 있게 만들어 준다. finally는 가장 마지막에 실행되는 처리문으로 보면되고 실제 복잡하게 사용한다면 내용만 길어지고 어려울 수 있으니 이번편에서는 예외 프로그램 처리 시 간단한 활용···
jQuery 에서 사용되는 on 이벤트는 연결 이벤트중 하나로 click, mousedown,keydown 등의 여러 동작 이벤트를 연결하여 처리가 가능하다. 참고로 같은 용도로 사용되는 연결이벤트 bind, delegate, live 등이 있지만 jQuery API 문서내 권고 사항으로 본다면 on 이벤트로 대체해야 추후 높은 버전을 사용하더라도 변경없이···
싸이트를 운영하다보면 멋진 슬라이드 기능을 구현하고 싶을때가 있다. 무작정 JAVASCRIPT 를 이용하여 만들기엔 너무 어렵기 때문에 시중에 오픈된 라이브러리를 이용하게 되는데 그중 모바일에 가장 친화적인 Swiper API가 있다. Swiper API는 업데이트도 꾸준히 되고 있으며 초기에 발생되었던 많은 버그들이 지속적으로 업데이트되어 현재는 거의 완···
특정 레이아웃 안에서 스크롤이 생길 시 마우스 스크롤을 일일이 클릭 후 이동하여 화면을 봐야하는 불편함이 있는데 마우스 이벤트를 이용하여 클릭 후 스크롤을 자동으로 이동 시킬 수 있는 방법이 있다. 검색을 해보면 마우스 스크롤 이벤트는 상당히 많이 존재하는데 이를 이용하여 직접 만들 수 도 있지만 우리는 항상 시간이 부족하기때문에 시간이 조금 난김에 아래와···
이미지 확대/축소를 할 수 있는 라이브러리는 여러가지가 있다. 다만 보통 찾기가 어려운게 이미지 확대/축소 검색을 단순한 컨트롤을 이용한 확대 축소 라이브러리만 있기때문에 막상 찾기가 어려울때가 있다. 이번에 찾은 라이브러리는 JQUERY 라이브러리 중 하나인 Zoomer 라이브러리로 컨트롤도(+,-) 지원하고 모바일에서는 터치를 통해 확대하고 이동까지 가···
사이트맵은 검색 엔진은 꼭 필요한 사항은 아니지만 그래도 대부분의 검색 엔진 로봇들이 사이트에 담긴 페이지 링크 구조 파악을 위해 사이트맵을 참고하기 때문에 만들어서 넣어두는게 좋다. 사이트맵은 간단하게 보면 사이트에 포함된 링크 연결 관계도를 작성하는건데 유형에 따라 조금 더 복잡할 수 있다. 이번에 소개하는 사이트맵은 기본적인 블로그에서 사용되는 형태이···
간만에 네이버페이 주문형 결제연동하다가 서버에 mcrypt 함수가 지원이 안되어 모듈 실행시 오류가 발생하는 문제가 생겼다. 해당 서버의 PHP 버전은 7.4 였는데 당장 서버에서 지원이 안되는 관계로 조금 난감하게 되었다. PHP 공식 포럼에는 해당 함수가 7.1 부터 배제되었고 7.2부터는 제거 되었으니 해당 함수에 의존하지 말라고 명시가 되어있었다. ···
JSON은 오브젝트 데이터의 직렬화 데이터 기법으로 프로그램에서는 공통 언어로 많이 사용된다. 이는 프로그램 언어가 서로 달라도 하나로 통일하여 소통이 가능하도록 연결해주는 역활을 한다. PHP에서는 배열을 이용하여 json_encode() 함수를 이용한 변환 방식을 주로 사용하는데 이와 함께 많이 쓰이는 serialize() 함수도 있다. serializ···
웹 사이트를 운영하다보면 사용자 입력 또는 프로그램 처리 시 조건에 맞지 않을 경우 예외처리를 해야한다. 이럴때는 해당 페이지에 스크립트 alert 을 이용하여 에러 메시지를 띄우고 페이지를 이동을 하게 되는데 보기가 좋지 않다. 이럴때 사용할 수 있는 방법은 처리되는 페이지를 ajax 처리 하여 결과를 받게 되는데 페이지 구조상 ajax 처리가 아닌 페이···
데이터 처리를 하려다보니 공휴일 정보가 필요했다. 토요일, 일요일이나 법정공휴일은 날짜가 지정되어 있으니 지정할 수 있지만 대체공유일아니 음력기반 공휴일들은 뽑을 수가 없다. 물론 음력기반 공휴일은 검색해보니 있는것같긴 한데 굳이 그렇게 쓸 필요가 있나 싶다. 그렇다고 해마다 달력을 받아서 그때그때 때려 맞춰서 하는 방법은 세상 무식한 방법이고해서 찾아보니···
웹 사이트를 운영하다보면 파일업로드 기능을 많이 사용하기도 하지만 직접 구현해야할때도 있다. 이럴땐 여기저기서 예제소스 가져다가 붙이곤 하는데 예외처리가 많이 안되다보니 사용하다 업로드에 문제가 생겼을 시 체크하기가 어렵다. 특히나 파일 업로드 권한이 특정 권한을 가진 유저가 아닌 모든 유저에게 부여된다면 역시나 믿을 수 없다. 하루에도 수백번씩 이상한 방···
PHP를 하다보면 간혹 변수앞에 &(엠퍼센트) 부호를 볼 수 가있다. 우리는 언제나 그렇듯 아무생각 없이 그냥 넘어갈때가 있는데 이 부등호는 AND 부등호와는 다르게 주소참조 부등호로 특정 값을 참조할때 사용하는 부등호이다. 조금 더 무식하게 예를 들자면 신용카드를 복제하여 사용할 수 있듯이 기존 변수를 참조시키고 해당 변수값을 변경하면 기존 변수값···
PHP에서 변수 체크시 많이 쓰는 함수는 isset 과 empty 함수가 있다. 이 두함수 관계는 서로 친척 관계정도로 생각하면 되나 엄밀히 따지면 사용하는 용도가 다르기 때문에 체크해야할 변수 상황에 맞게 써야 한다. isset 같은 경우 변수가 존재하는지에 대한 체크이며 empty 함수의 경우 변수의 값이 비었는지 체크하기때문에 주로 값 필 수 여부 체···
간혹 검색을 하다보면 제이쿼리를 사용하지 않겠다는 글들을 많이 볼 수 있다. 또한 글들을 잘 읽어보면 어느정도 맞는 이야기도 많다. 하지만 이미 몸에 익숙해져버린 제이쿼리를 갑자기 버리고 다른걸 사용하자니 어떤것을 배워야 할지 남감하기도 하고 제이쿼리와 연계된 라이브러리들이 너무 많아 고민일때가 있다. 하지만 이러한 이야기도 시대가 변함에 따라 더욱 나오고···
PHP에서 사용하는 배열은 정말 많은 영역에서 자유롭게 사용이 가능하며 관련되어 지원되는 내장 함수들도 많기때문에 배열처리를 하여 자주 사용하게 된다. 하지만 웹 영역만 접해본 개발자들에게 배열은 그냥 편리한 존재일 수 있지만 C 나 JAVA 처럼 소포트웨어쪽 개발도 접해본사람이라면 PHP 배열을 접했을 시 이게 배열인지 그냥 멀티 저장변수인지 신기할 수 ···