카테고리: PHP

PHP / 변수 / 유동 변수(변수 안에 변수) 만드는 방법
$$name과 ${$name}으로 변수 이름을 동적으로 선택하는 방법을 설명합니다. 반복문 생성, 배열 인덱스의 중괄호 위치와 함수 범위를 확인하고 외부 입력을 허용 목록의 배열로 관리하는 대안을 제시합니다.

PHP / 현재 페이지의 URL 정보 가져오는 방법
REQUEST_URI·QUERY_STRING·SCRIPT_NAME·PHP_SELF의 차이를 전체 PHP 예제로 확인합니다. 출력 이스케이프, 신뢰하는 오리진으로 전체 URL을 만드는 방법과 Host·프록시·프래그먼트의 한계를 설명합니다.

PHP / PHPMailer / SMTP를 이용하여 메일 발송하게 하는 라이브러리
PHPMailer 설치부터 TLS·UTF-8 SMTP 전송, 환경 변수로 비밀 설정을 관리하는 전체 PHP 예제까지 설명합니다. 고정 수신자와 CSRF 검증을 넣은 로컬 폼, OAuth 계정의 조건과 주요 오류도 다룹니다.

PHP / 에러 출력하는 방법, 에러 출력하지 않는 방법
error_reporting·display_errors·log_errors의 역할을 구분하고 로컬 예제로 화면 표시와 로그 기록을 비교합니다. HTTP 500, php.ini 적용 경로, 파싱 오류의 한계와 로그가 남지 않을 때의 확인 순서를 설명합니다.

PHP / 함수 / md5() / 문자열에서 md5 해시값 생성하는 함수
md5()의 32자리 16진수와 16바이트 바이너리 결과를 실행 예제로 비교합니다. 공백·줄바꿈 차이, 느슨한 비교 오류, 파일명과 파일 내용의 구분, 비밀번호·보안 검증의 한계를 설명합니다.

PHP / Ubuntu / Apache / HTML 확장자에도 PHP 코드 인식되도록 설정하는 방법
Apache의 처리기와 PHP-FPM 확장자 허용 설정을 함께 설명합니다. 전용 풀·로컬 가상 호스트 예제, 기존 PHP 모듈 방식, 실제 응답 확인과 소스 노출을 피하는 복구 순서를 제공합니다.

PHP / Session / 로그인, 로그아웃, 로그인 상태에서만 보이는 콘텐츠 만들기
공개 실습 계정으로 로그인·로그아웃·회원 콘텐츠 접근 제한을 재현합니다. 해시 검증, 인증 전 세션 ID 교체, CSRF 검사와 서버 만료 조건을 전체 파일 예제로 설명합니다.

PHP / 다른 페이지로 리디렉션(Redirection)하는 방법
header()와 exit로 페이지를 이동하는 전체 예제를 제공합니다. 302·303·307·301·308 선택 기준, POST 본문 유지 비교, 허용된 이동 키와 headers already sent 문제를 설명합니다.

PHP / Session / 세션 값 출력하는 방법
session_start()와 $_SESSION으로 값을 읽고 HTML에 표시하는 방법을 설명합니다. 한 파일 실습에서 쿠키 유지, 누락 값, 출력 이스케이프와 특정 세션 항목의 초기화를 확인합니다.

PHP / 함수 / password_verify() / 비밀번호가 저장된 해시와 일치하는지 확인하는 함수
password_verify()의 인수와 반환값을 설명하고 정확한 입력·잘못된 입력·손상된 해시를 실행 예제로 비교합니다. 해시 보존 확인, bcrypt 길이 제약과 검증 성공 후 재해시 흐름도 다룹니다.