hELLO.

    PHP: 쿠키와 세션

    쿠키 쿠키는 브라우저에 저장되는 정보로 Key-Value 쌍으로 구성되어 있고, 유효기간을 가지고 있다. 브라우저에 저장할 수 있는 스토리지는 쿠키 말고도 로컬 스토리지와 세션 스토리지가 있는데, 쿠키 이외에는 서버에서 직접적으로 접근할 수는 없다. PHP 에서는 $_COOKIE 글로벌 변수를 통해 접근할 수 있기 때문에 별도의 설정없이도 접근할 수 있다. 참고로 쿠키에 중요한 정보를 저장해서는 안 된다. 정말로 중요하다면 세션과 같은 서버 저장소에 저장해야 한다. setcookie(string key, [ string $value = "" [, int $expires = 0 [ ... ]]]): bool 쿠키를 지정하여 Set-Cookie 헤더에 넣을 때는 setcookie 함수를 쓴다. 제목에는 일부..

    PHP: HTML 폼 (GET, POST)

    HTML 폼 HTML 폼은 HTTP 요청의 역사에서 오래된 것 중 하나이다. HTTP 요청은 cURL, Ajax 등 다양한 기술로 처리를 할 수 있으나 폼요청은 웹사이트에서 가장 많이 사용하는 요청이자 역사가 오래된 요청 방법이다. 여기서 HTML 폼은 우리가 흔히 볼 수 있는 회원가입, 로그인 화면에서 아이디와 패스워드를 입력하고 확인 버튼을 눌러 로그인을 할 수 있도록 해준다. 우리말로는 양식이라고 하는 듯하지만, 편의상 폼이라고 할 것이다. 로그인 HTML 폼의 예시로는 로그인이 제격이다. 로그인의 과정 자체는 언급하지 않겠지만, 폼은 데이터를 전달하기 위한 용도로 사용하므로 해당 데이터를 어떻게 사용할 지는 프로그래머의 몫이다. 따라서 여기서는 해당 포스팅에서는 폼으로 데이터를 전달하고 PHP 에..

    티스토리 플러그인, 아직도 사용 안 하니?

    티스토리 플러그인 티스토리 블로그에서 플러그인이란 블로그를 운영함에 있어 티스토리에서 제공하는 소소한 기능들을 말한다. 티스토리 블로그를 사용하면서 플러그인을 사용하지 않는다는 것은 티스토리 블로그를 제대로 활용하고 있지 않은 것이다. 그 중에는 메타 태그와 구글 애드센스와 같은 필수적으로 사용하면 좋은 것들도 있다. 해당 포스팅에서는 사용하기 적당한 플러그인을 추천해보고자 한다. 플러그인의 사용법 확인하기 플러그인의 사용법을 잘 모르겠는 경우에는 플러그인을 클릭하면 사용법을 알 수 있으며, 티스토리 공식 블로그에도 설명을 해주고 있기는 하다. 다만, 오래된 내용도 있어서 내용이 구닥다리인 경우도 있으니 주의하자. 메타 태그 등록 티스토리 블로그를 운영하면서 네이버, 구글과 같은 검색 엔진을 위해 제공해..

    PHP: 객체 비교와 복사

    객체 비교 객체에 대한 비교는 단순히 가지고 있는 값이 똑같은지 비교하는 것과 객체의 주소값이 같은지를 비교하는 것이 있습니다. 각각 ==, === 연산자를 사용하고, 아래의 코드를 보면, 두 개의 객체는 서로 다른 주소값을 가지고 있기 때문에 === 를 사용했을 때 false 를 반환합니다. 아주 단순하지만 이는 중요합니다. $class1 = new stdClass(); $class2 = new stdClass(); var_dump($class1 == $class2); // -> true var_dump($class1 === $class2); // -> false 객체 복사 결론부터 이야기하자면 PHP는 clone 키워드를 통해 복사하는 경우 기본적으로 얕은 복사입니다. 복사는 단순 복사, 얕은 복사,..

    PHP: 참조 (WeakReference)

    참조 참조는 포인터와 비슷하지만 사실 전혀 다른 개념입니다. 그저 변수의 실질적 값이 담긴 공간에 그저 이름을 하나 더 부여할 뿐입니다. hello 라는 변수에 Hello, world 라는 값이 담겨있고, 이 변수의 참조인 sayHello 라는 변수를 만들면 그저 Hello, world 라는 값이 담긴 메모리 공간에 이름이 하나 더 부여 될 뿐이라는 것입니다. 그 말은 hello 변수와 sayHello 라는 변수는 같다는 이야기로 해석할 수 있습니다. & & 기호를 사용하여 참조를 나타낼 수 있으며, 이는 위에서 언급한 바와 같이 이름을 하나더 부여하는 것과 같습니다. 그래서 sayHello 라는 값을 바꿨더니 hello 변수의 값도 변하는 효과가 나타난 것입니다. 포인터와 헷갈려서는 안 됩니다. 포인터..