PHP 배열을 데이터베이스에 저장하는 방법으로는 아래 세가지가 자주 이용됩니다. 1) implode를 사용한 값 분할 방법 $arrayString = implode(",", $myArray); 저장 후 explode를 이용해 다시 변환할 수 있습니다. 하지만 이 방법은 $MyArray 안에 ","값이 존재할 경우 예상치 못한 결과가 발생될 수 있습니다. 2) json_encode을 이용한 JSON 인코딩 방법 $arrayString = json_encode($myArray); json_decode을 이용해 배열을 다시 디코딩 할 수 있고, 앞서 사용한 implode 방법보다 훨씬 안전합니다. 특히 JSON으로 데이터를 주고 받는 경우가 많기 때문에 많이 사용되는 방식입니다. 3) 배열 직렬화 $array..
php.ini는 PHP에 대한 설정값들이 저장되어 있는 파일입니다. 다양한 값들이 저장되어 있으며 php extension에 대한 설정 또는 사용자가 추가한 값들도 저장될 수 있습니다. php.ini 설정은 PHP 함수를 통해 제어하거나 php.ini 파일을 직접 수정할 수 있습니다. 이렇게 값을 변경한 이후에는 아파치를 재시작 시켜 php.ini 설정값들을 다시 불러 오도록 해야 합니다. [주요 설정] 개발시 사용되는 환경 설정 값들은 정말 다양하고 많습니다만 그 중 일부 설정에 대해 알아봅니다 0과 1로 주는 설정들은 대부분 1: 켠상태, 0: 끈상태 입니다. opcache.enable 해당 옵션이 켜져 있으면 PHP 파일이 수정되더라도 즉시 반영되지 않고 짧게는 몇초 길게는 1분 가량의 시간이 지난..
모든 값을 다룰 때는 해당 데이터가 오염되었다는 가정하에 사용하는 것이 좋습니다. 클라이언트로 부터 받아오는 값을 서버에서는 필터를 통한 다음 사용하여야 하며, 클라이언트로 전달할 값 또한 필터를 거친 다음 출력하여야 합니다. 웹 개발은 사실 어떤 것 보다 가장 쉬우면서도 어려운게 이러한 부분들이 아닌가 싶습니다. 값 하나를 출력하거나 입력 받을 때도 수많은 경우를 고려하여야만이 비로소 견고한 웹이 제작되기 때문입니다. 보안은 습관임과 동시의 시스템이라 생각합니다. 어떤 제작사든 이에 대한 올바른 가이드라인을 제작하여 이를 바탕으로 수행하는 것이 좋습니다. 회사는 개개인의 역량을 통해 하나의 시스템을 만드는 곳이기 때문입니다. 서두가 길었습니다. 이번 편은 보안에 대한 이야기로 그중에서도 XSS에 대한 ..
파일 업로드시 최대 크기는 php.ini 설정에서 upload_max_filesize 설정을 통해 조절할 수 있고 max_file_uplads 설정은 한 번에 몇개 까지 동시에 파일을 올릴 수 있는지 설정합니다. dirname() - 상위 디렉토리의 경로를 반환합니다. basename() - 경로의 후행 이름 구성 요소를 반환합니다. parse_url() - URL을 구문 분석하고 해당 구성 요소를 반환합니다. realpath() - 정규화된 절대 경로 이름을 반환 합니다. pathinfo(string $path, int $flags = PATHINFO_ALL): array|string $path에 따라 연관 배열 또는 문자열에대한 정보를 반환합니다 현재 경로 정보 검색에 대한 정보는 사전 정의된 예약 ..
PHP에는 mysql과 mysqli가 있습니다. mysql은 오래전 사용되었고 현재에는 mysql을 개선한 mysqli가 있으므로 mysqli를 사용하시는게 좋습니다. mysqli_prepare() - 실행을 위해 SQL 문을 준비합니다. mysqli_stmt_result_metadata() - 준비된 명령문에서 결과 세트 메타데이터를 반환합니다. mysqli_stmt_fetch() - 준비된 명령문에서 바인딩된 변수로 결과를 가져옵니다. mysqli_fetch_array() - 결과 세트의 다음 행을 연관, 숫자 배열 또는 둘 다로 가져옵니다. mysqli_stmt_store_result() - 결과 세트를 내부 버퍼에 저장 MySQL 서버에 대한 새 연결 열기 mysqli::__construct my..
session_save_path (?string $path = null): string|false 현재 세션 저장 경로 가져오거나 설정합니다. 올바르게 수행하기 위해서는 session_start() 전에 session_save_path()를 호출해야 합니다. session_start (array $options = []): bool GET 또는 POST 요청을 통해 전달되거나 쿠키를 통해 전달된 세션 식별자를 기반으로 세션을 생성하거나 현재 세션을 재개합니다. session_start() 가 호출되거나 세션이 자동으로 시작되면 PHP는 열기 및 읽기 세션 저장 핸들러를 호출합니다. 명명된 세션을 사용하려면 session_start() 를 호출하기 전에 session_name ()을 사용하면 됩니다. 일반..
클라이언트로 부터 제공 받은 정보(입력)은 기본적으로 신뢰 할 수 없기 때문에 모든 값에 대해서 필히 검증을 해야 하기 때문에 웹 개발에서 상당 부분을 차지하고 있는건 Validate와 Sanitize라고 생각한다. 간혹, JS를 통해 클라이언트단에서 값검증을 하는 경우가 있는데 이는 UI적인 부분일뿐 유저로 받는 모든 값은 백단에서 필히 검증한 후 사용하여야 한다. 그런부분이 없다면 서버에 대한 통제권을 열어줄 뿐이다. 어떤 웹사이트에서든 진행하여야하고 개발자라면 누구나 하고 있을 이 지루하면서도 조금의 틈도 없이 처리해야할 작업을 위해 PHP에서 다양한 Filter를 제공하고 있다. filter 함수에 다양한 옵션들을 줄 수 있고 Callback도 가능하기 때문에 이를 백분 활용한다면 많은 시간을 줄..
CSPRNG는 아래 문자의 약어로 PHP 7.0.0부터 존재한다. ( 레거시에서는 PHP 5.2.0에 userland도 있다. ) Cryptographically Secure Pseudo Random Number Generator CSPRNG Functions random_bytes — Generates cryptographically secure pseudo-random bytes random_int — Generates cryptographically secure pseudo-random integers random_int rand()함수에 비해 조금더 암호학적으로 좋은 과정을 통해 난수를 구하는 함수다. rand()함수와 가장 큰 차이점은 수학적으로 최대한 편향되지 않은 결과를 나타낸다는 점이다. ..
PHP 7.4 버전에 추가된 기능으로 배열을 합치는데 사용됩니다. [ 기본 사용방법 ] $array1 = [1,2,3]; $array1 = [ ...$array1, 4, 5 ]; var_dump($array1); // [1,2,3,4,5] $array = [ ... $array1 , ... $array2 ] ; // 다음과 거의 같습니다. $array = array_merge ( $array1 , $array2 ) ; 뒤에 나온 문자열 키가 이전에 나온 키를 덮어 씌워 버립니다. $array1 = ["a" => 1]; $array2 = ["a" => 2]; $array = ["a" => 0, ...$array1, ...$array2]; var_dump($array); // ["a" => 2] https:..
- Total
- Today
- Yesterday
- 라이트세일
- 철거
- 빛의성당
- 도스 코파스
- 고흐1인칭시점
- php
- FTP권한문제
- Sanitize
- Theme Customization
- 스프레드연산자
- WordPress
- Lighitsail
- ontent
- url복사
- 사용자정의하기
- 코스모스팜
- URL디코딩
- MySQL
- URL인코딩
- 워드프레스
- 11번가 아마존 #우주패스 #우주쓰레기
- 빈화면
- 한빛미디어
- wordpress #워드프레스 #url
- 지대공
- 이사
- 이전설치
- 썸머노트
- CSPRNG
- wp-members
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |