728x90

LARAVEL 12

[PHP] file 테이블 생성 및 데이터 삽입

CREATE TABLE tb_activity_image ( ai_seq INT AUTO_INCREMENT PRIMARY KEY COMMENT '활동체험 이미지 시퀀스 (고유 ID)', al_seq VARCHAR(255) NOT NULL COMMENT '활동체험 시퀀스', ai_original_name VARCHAR(255) NOT NULL COMMENT '업로드한 파일명', ai_path VARCHAR(255) NOT NULL COMMENT '파일 저장 위치', ai_saved_name VARCHAR(255) NOT NULL COMMENT '저장되어 변경된 이름', ai_extension VARCHAR(255) NOT NULL COMMENT '확장자', ai_size..

LARAVEL 2024.11.26

[PHP] substr 대신 mb_substr을 사용하는 이유

substr을 사용하다보면 ��� 이렇게 데이터가 깨질때가 있다이는 인코딩 문제로 인해 올바르게 처리되지 않을 때 나타나는 문자이다 선요약!!요약문제: substr()로 멀티바이트 문자(한글)를 처리하면 깨진 데이터(��)가 출력됩니다.해결: mb_substr()를 사용하여 멀티바이트 문자를 올바르게 처리하세요.원인 분석데이터베이스 인코딩 문제$list->lk_name_kr에 저장된 데이터가 잘못된 문자 인코딩(예: UTF-8이 아닌 EUC-KR 등)일 수 있습니다.PHP에서 substr()은 바이트 단위로 문자열을 잘라내기 때문에, 멀티바이트 문자(예: 한글)가 잘려서 깨진 결과를 초래할 수 있습니다.PHP와 데이터베이스의 인코딩 불일치PHP 코드와 데이터베이스 간의 인코딩 설정이 다르면 문자열이 잘못..

LARAVEL 2024.11.20

[라라벨] @section('stlye')과 <style></style>의 차이

어느날 갑자기 이 차이가 궁금해졌다..!그래서 알아보았습니다! Blade의 @section을 사용할 이유유지보수성, 확장성을 높이기 위해 그냥  태그를 직접 사용해서 스타일을 작성할 수도 있습니다. 하지만, Blade 템플릿에서 @section('style')과 같은 구조를 사용하는 이유는 유지보수성과 확장성 때문입니다. 아래에서 이를 비교하고, 언제 각각을 사용하는 것이 적절한지 설명드리겠습니다.레이아웃 템플릿에서 @yield('style') 위치를 미리 정의하면, 다양한 하위 템플릿에서 해당 영역에만 필요한 스타일을 삽입할 수 있습니다.이렇게 하면 중앙 집중적으로 관리가 가능해지고, 스타일을 관리하는 구조가 일관성 있게 유지됩니다. 템플릿 구조와 통합Laravel의 Blade 템플릿은 코드와 뷰를 분..

LARAVEL 2024.11.19

[PHP] NULL 널 병합 연산자(??, ||, !)

문득 php에서도 js처럼 변수를 설정할 수 있을까 궁금했다..PHP에서 ??, ||, !는 모두 조건 처리나 값을 평가하는 데 쓰이는 연산자들이다.각각의 역할은1. ?? (Null Coalescing Operator)??는 널 병합 연산자라고 하며, PHP 7 이상에서 사용 가능합니다.변수가 존재하지 않거나 null일 때, 대체 값을 반환합니다.예시:$username = $userName ?? 'Guest'; 여기서 $userName이 null이거나 정의되지 않았다면 'Guest'가 $username에 할당됩니다.그렇지 않으면 $userName의 값이 할당됩니다. 2. || (Logical OR Operator)||는 논리 OR 연산자로, 하나라도 true면 true를 반환합니다.주로 조건문에서 여러 ..

LARAVEL 2024.11.14

[LARAVEL] 세션값으로 기존에 가려고 했던 URL 이동하기

선결론!session(['intended_url' => url()->current()]); // 가려고했던 URL 저장  웹 관리자로써 이용자들에게 많은 편의성을 제공하고 싶은데,그중 하나가 이번에 해결되어 무척 기쁘다 우리 웹에는 로그인을 해야만 이용할 수 있는 메뉴들이 있다예를들면,1:1문의내역, 후기작성, 구매내역 등등유저가 로그인을 하지 않은 상태에서 이러한 메뉴를 클릭하면'로그인을 해주세요' 라는 알람과 함께 로그인 페이지로 이동한다해당 페이지에서 로그인을 하면! 기존에 가려고했던 URL이 아닌 메인페이지로 이동하게끔 코드가 짜여 있다 이게 너무 답답했는데, 이번에 고치게 되었다비밀은 세션이었다 // 기존코드if (!session('user_id')) { return redirect('/l..

LARAVEL 2024.11.07

[PHP] isset() 과 empty() 의 차이

선결론,isset()이 값 존재 여부만 확인,empty()는 값의 유효성 확인 $memo = isset($memo) ? explode("/",$memo)[1] : '';라고 코드를 짰더니, $memo의 값이 빈칸("") 일때도 true로 값이 나왔다...그러한 상황에서 (" ")[1] 배열행위를 하려니 에러가 났던 상황! $memo = !empty($memo) ? explode("/",$memo)[1] : '';로 하니까 정상적으로 잘 되었다 왜 이런 걸까?   기존 코드에서 isset($memo)를 사용했을 때는변수 $memo가 정의되어 있으면 true를 반환하지만, 값이 빈 문자열 ""일 때에도 true로 인식한다그 결과, explode("/", $memo)[1]을 실행할 때memo 값이 빈 문자열이..

LARAVEL 2024.10.24

[블레이드] 데이터 출력시 HTML 태그 나올 때 해결법

선결론!!{{ $val }} 대신 {!! $val !!} 이걸 쓰면 됨 서머노트를 이용해서 글을 저장하면 DB에 눈뜬감자의 웹개발 이렇게 저장된다이 상태에서 데이터를 출력하면 html태그가 그대로 웹에 노출되곤 하는데열심히 구글링 해서 알게 된 결과... {!! $val !!} 로 하면 된다고 함  {{ $val }}는 Blade에서 데이터를 HTML로 출력할 때 자동으로 이스케이프 처리되어 HI와 같은 태그가 실제로 출력되지 않고, 그대로 문자열로 나타난다ㅠㅠ 이스케이프(ESCAPE) 처리란?문자열에 태그가 있어도 단순한 텍스트로 처리!  만약 HTML 태그를 포함한 데이터를 실제 HTML로 렌더링하고 싶다면 {!! $val !!}를 사용하면 된다주의할 점은, 이 방식은 XSS(Cross-Site Sc..

LARAVEL 2024.09.21
728x90
반응형