꿈을 바구니에 담아 간직하다 보면!!

지금 참 힘들죠? 근데 내일은 지금보다 덜 힘들거예요

힘든 건 오늘만이 아니다. 내일도, 그리고 그 다음 날도 계속될 것이다.

PHP Tip 13

에디터 플러스 단축키

🧩 에디터플러스 기본 화면🔹 파일 / 기본 단축키기능단축키새 파일Ctrl + N파일 열기Ctrl + O저장Ctrl + S다른 이름으로 저장Ctrl + Shift + S파일 닫기Ctrl + W프로그램 종료Alt + F4🔹 편집 단축키 (가장 많이 사용)기능단축키실행 취소Ctrl + Z다시 실행Ctrl + Y잘라내기Ctrl + X복사Ctrl + C붙여넣기Ctrl + V전체 선택Ctrl + A현재 줄 삭제Ctrl + Shift + L현재 줄 복사Ctrl + D👉 PHP / HTML 작업할 때 Ctrl + D, Ctrl + Shift + L 정말 자주 씁니다.🔹 검색 / 치환기능단축키찾기Ctrl + F다음 찾기F3이전 찾기Shift + F3바꾸기Ctrl + H파일 전체 검색Ctrl + Shift + F..

PHP Tip 2025.12.28

CSS란?

✅ 1. CSS란?CSS (Cascading Style Sheets)→ HTML 요소의 색상, 크기, 위치, 정렬, 애니메이션 등을 꾸미는 언어✅ 2. CSS 적용 방법 3가지① 인라인 스타일 (비추천) div style="color:red; font-size:14px;">텍스트div> ② 내부 스타일 (페이지 1개용) style> p { color: blue; } style> ③ 외부 스타일 (가장 추천 👍) link rel="stylesheet" href="style.css"> ✅ 3. CSS 기본 문법 선택자 { 속성: 값; } div { color: red; font-size: 16px; } ✅ 4. 선택자(selector) 기초🔹 태그 선택자 p { color: black; } 🔹 클래스..

PHP Tip 2025.12.27

MySQL Host, User, Password, DB 정보에 오류가 있습니다.

MySQL Host, User, Password, DB 정보에 오류가 있습니다.오류가 나오는 이유는 비번이나 phpMyAdmin 접속이 안되어서 오류가 발생합니다..근데 갑자기 다시되?? 그러면 저장공간이 100%이상차 있을경우 그리고 MySQL 접속 제한(동시접속/트래픽 폭주/봇 공격) 경우입니다... 근데 소스에는 이상이 없어 그럴때 이렇게 하시면 됩니다.. MySQL Host, User, Password, DB 정보에 오류가 있습니다. 오류가 갑자기 나타났다가 사라져도 찜찜 할경우 이렇게 대체하세요. common.lib.php 이부분을 function sql_connect($host, $user, $pass, $db=G5_MYSQL_DB) { global $g5; if(funct..

PHP Tip 2025.12.27

외부사이트 가져오기 curl 기본 설명 파싱(parsing)

function curl($url) { // 시스템 임시 폴더에 임시 쿠키 파일 생성 (세션 유지용) $cookieFile = tempnam(sys_get_temp_dir(), 'cookie'); // 임시 쿠키 파일 생성 // cURL 세션 초기화 $ch = curl_init(); // 요청을 보낼 URL 설정 curl_setopt($ch, CURLOPT_URL, $url); // 실행 결과를 바로 출력하지 않고, 문자열로 반환하도록 설정 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 서버에게 보낼 User-Agent 헤더 설정 (브라우저인 척하기 위해) curl_setopt($ch, CURLOPT..

PHP Tip 2025.12.20

DB 없이 chatbot 간단하게 만들기

DB 없이 chatbot 간단하게 만들기chatbot.php 이름으로 파일 만들기// 브라우저나 클라이언트에게 "지금부터 JSON을 UTF-8로 보낼 거야"라고 알려주는 헤더 설정header('Content-Type: application/json; charset=utf-8');// 1) JSON 입력 받기// php://input 은 HTTP 요청의 raw body를 그대로 읽어오는 스트림// file_get_contents('php://input') 로 body를 읽고, json_decode 로 PHP 배열로 변환$input = json_decode(file_get_contents('php://input'), true);// 입력이 없거나(message 필드가 없으면) => 에러 응답if (!$i..

PHP Tip 2025.12.20

/* 페이징 스타일 복원 + 반응형 */

/* 페이징 스타일 복원 + 반응형 */.pagination { display: flex; /* 페이징 영역을 flexbox로 설정 */ flex-wrap: wrap; /* 화면이 좁아지면 버튼이 줄바꿈되도록 허용 */ justify-content: center; /* 버튼들을 가운데 정렬 */ margin-top: 20px; /* 위쪽에 여백 추가 */ gap: 8px; /* 버튼 사이 간격 */}.box, .box_list { display: inline-block; /* 버튼을 인라인 블록으로 표시 */ padding: 10px 15px; /..

PHP Tip 2025.12.18

오버레이가 있는 반응형 이미지 갤러리(그누보드)

include_once('./_common.php'); // GnuBoard 공통 초기화 파일을 로드해 DB, 상수(G5_*) 등을 사용할 수 있게 함$bo_table = "ham_25"; // 사용할 게시판 테이블명(보드 아이디)을 지정$write_table = $g5['write_prefix'] . $bo_table; // 실제 DB 글 테이블 이름(예: g5_write_ham_25)을 조합$page = isset($_GET['page']) ? (int)$_GET['page'] : 1; // GET으로 받은 page 파라미터를 정수로 캐스팅, 없으면 1로 기본값 설정$rows = 50; ..

PHP Tip 2025.12.17

쿠키 값으로 방문자 횟수 표시

📌 코드 흐름 요약쿠키 이름 지정→ 방문 횟수를 저장할 쿠키 이름을 visitCount로 설정$cookieName = 'visitCount';현재 쿠키 값 확인→ 쿠키가 있으면 숫자로 변환, 없거나 잘못된 값이면 0으로 초기화$current = isset($_COOKIE[$cookieName]) && ctype_digit($_COOKIE[$cookieName]) ? intval($_COOKIE[$cookieName]) : 0;방문 횟수 증가→ 현재 값에 1을 더해 새로운 방문 횟수 계산$next = $current + 1;쿠키 저장 (보안 옵션 포함)setcookie($cookieName, strval($next), [ 'expires' => time() + 365*24*60*60, // 1년 유지 '..

PHP Tip 2025.12.16

임대 서버 환경에서 트래픽을 줄이고 사이트 성능을 최적화하려면(그누보드)

전체적으로 구조화된 .htaccess 설정이 필요합니다. 아래는 기존 설정을 기반으로, 트래픽 절감 + 보안 강화 + 캐시 최적화 + 봇 차단까지 포함한 통합 .htaccess 예시입니다.🧩 전체 통합 .htaccess 예시#### G5_VERSION rewrite BEGIN ###### 디렉토리 목록 노출 방지Options -Indexes RewriteEngine On RewriteBase / # 실제 파일 또는 디렉터리 존재 시 리디렉션 제외 RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^ - [L] # 이미지 파일은 리디렉션 제외 RewriteC..

PHP Tip 2025.12.16

Apache의 에서 User-Agent 기반으로 특정 봇을 차단하는 방식입니다.

# 특정 User-Agent(봇) 문자열을 감지해서 bad_bot 환경변수로 지정BrowserMatchNoCase "AhrefsBot" bad_botBrowserMatchNoCase "SemrushBot" bad_botBrowserMatchNoCase "MJ12bot" bad_bot# 접근 제어 순서: Allow 규칙 먼저, 그 다음 Deny 규칙 적용Order Allow,Deny# 기본적으로 모든 요청을 허용Allow from all# bad_bot 환경변수가 설정된 경우 접근 차단 (403 Forbidden)Deny from env=bad_bot

PHP Tip 2025.12.14

sitemap.xml 자동 만들기

// 공통 설정 파일 불러오기 (DB 연결, 상수 정의 등)include_once(dirname(__FILE__). "/_common.php");// 사이트 기본 URL$SITE_URL = G5_URL;// sitemap에 포함할 정적 경로 배열$staticPaths = ['/', '/bbs/board.php', '/bbs/faq.php'];// 현재 시간 (ISO 8601 형식)$now = date('c');// XML 헤더 및 캐시 설정header('Content-type: text/xml; charset=utf-8');header('Cache-Control: public, max-age=3600');header('Pragma: public');// XML 시작 부분 작성$xml_code = '' ..

PHP Tip 2025.12.14