PHP: CORS 에러를 회피하기 위한 API의 프록시(중계) 페이지 만들기 (cURL 이용)

참고 자바스크립트: JSONP (JSON Padding) 사용법 PHP: cURL 기초 (정적 웹 페이지에서 정보 가져오기) 자바스크립트(JavaScript)에서 쿼리 파라미터(query parameter) 값을 알아내는 방법   PHP: CORS 에러를 회피하기 위한 API의 프록시(중계) 페이지 만들기 HTML + 자바스크립트를 이용해 웹 페이지를 만들 때 외부 API를 사용하는 과정에서 흔히 CORS 위반이라 불리는 에러를 많이 접할 더보기…

PHP: 브라우저 사용(선호) 언어 구하기

PHP에서 브라우저 사용(선호) 언어 구하는 방법 먼저 다음 코드를 입력해서 브라우저 선호 언어 스트링을 받아옵니다. echo $_SERVER[‘HTTP_ACCEPT_LANGUAGE’];   위 코드를 실행하면 아래와 같은 형태의 스트링이 출력됩니다. ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7,ja;q=0.6 // 쉼표로 구분 ko-KR, ko;q=0.9, en-US;q=0.8, en;q=0.7, ja;q=0.6 맨 윗줄은 그대로 출력된 원문이고 아랫 부분은 읽기 쉽게 쉼표마다 엔터를 친 형태입니다. 현재 사용 더보기…

워드프레스 ‘댓글 승인제’를 사용중인 경우 댓글 달았을 경우 메시지 표시하기

워드프레스는 특성상 해외 스팸 댓글이 많이 달리기 때문에 사이트를 운영중인 경우 위의 설정처럼 댓글 승인제를 설정하고 사용하는 경우가 많습니다. 그런데 댓글 승인제를 설정해도 댓글 후 아무런 경고 메시지를 보내지 않기 때문에 댓글을 다는 사용자가 시스템 오류 등으로 댓글이 안달린 것으로 착각할 수 있습니다. 그래서 댓글 작성 후 성공 메시지를 표시하려면 더보기…

PHP: 이미지 섬네일(Thumbnail) 만들기 (Imagick 이용)

Imagick이 PHP 서버에 설치된 경우, 아래 코드를 이용하여 이미지 섬네일을 만들 수 있습니다. 저는 이용하는 호스팅 서버에 해당 프로그램이 설치가 되어 있어 별도 작업을 하지 않고 바로 사용하지만, 설치가 안된 경우에는 링크를 참고하여 설치하세요. 다음 함수를 추가합니다. /** * * Generate Thumbnail using Imagick class * * @param string $img 더보기…

PHP: 날짜 시간 관련 함수(date, time, strtotime, mktime)

시간 포맷 사용 – date() 함수 두 번째 파라미터는 nullable이며, 특정 타임스탬프를 지정하면 해당 타임스탬프의 날짜를 반환하고, 아니라면 time() 현재 시각을 반환합니다. // set the default timezone to use. Available since PHP 5.1 date_default_timezone_set(‘UTC’); // Prints something like: Monday echo date(“l”); // Prints something like: Monday 8th of August 2005 더보기…

PHP, Mysql: 좋아요 기능 만들기

예전에 PHP로 만들었던 간단한 CRUD 게시판에 ‘좋아요 기능’을 추가해보도록 하겠습니다. ‘좋아요 기능’은 빈 하트(♡)를 누르면 하트가 채워지면서(♥) 숫자 카운트가 올라가는 기능입니다. PHP: 데이터베이스 접근 기초(SELECT, INSERT, UPDATE, DELETE) 여기서는 로그인 기능이 구현되지 않았으므로 아이피 주소(IP Address)를 기준으로 중복 좋아요를 방지하도록 하겠습니다. 만약 로그인이 구현되어 있다면 로그인한 유저를 기준으로 중복 좋아요를 더보기…

PHP, Mysql: SELECT JOIN 문 실행시 중복된 이름의 열(컬럼) 결과를 가져오는 방법

Q. 내 데이터베이스에 두 개의 테이블이 있습니다. 컬럼이 있는 NEWS 테이블: id – 뉴스 ID user – 작성자의 사용자 ID 컬럼이 있는 USERS 테이블 : id -사용자 ID 이것에 대한 SQL을 실행하려고 합니다. SELECT * FROM news JOIN users ON news.user = user.id PHP에서 결과를 얻을 때 컬럼 이름을 $row['컬럼이름']으로 가져오는 경우, 동일한 더보기…

PHP: mysql_fetch_array() 에서 while() 대신에 foreach()를 사용하는 방법

Q. foreach와 함께 작동하도록 다음 코드를 어떻게 변환하는지 알고 싶습니다. $query_select = “SELECT * FROM shouts ORDER BY id DESC LIMIT 8;”; $result_select = mysql_query($query_select) or die(mysql_error()); while($row = mysql_fetch_array($result_select)) { $ename = stripslashes($row[‘name’]); $eemail = stripcslashes($row[’email’]); $epost = stripslashes($row[‘post’]); $eid = $row[‘id’]; echo $eid . ‘<br/>’; echo $ename . 더보기…

PHP: JSON 스트링을 객체 또는 배열로 변환, explode, str_replace, 대소문자 변경방법

1) JSON을 배열로 변환 객체(stdClass)로 변환하는 방법 $array_data = json_decode($str, false); // 또는 $array_data = json_decode($str); 배열로 변환하는 방법 $array_data = json_decode($str, true);   2) explode 다른 언어의 String.split과 기능이 비슷합니다. 스트링의 경계기호(delimiter) 문자를 기준으로 배열을 생성합니다. $date = “2020-08-25”; // explode(delimiter, string) $exploded = explode(‘-‘, $date); echo $exploded[0]; // 더보기…

PHP: BCrypt 해싱값과 평문 비교

password_verify($plain_text, $hashed_text) $plain_text에는 평문값을 입력하며, $hashed_text에는 BCrypt 형식으로 해싱된 텍스트를 집어넣습니다. BCrypt는 특성상 해싱값에 솔트(salt)가 들어가기 때문에 일반적인 텍스트 비교는 솔트값을 모른다면 불가능하며, 위의 방법으로 대조해야 합니다. 평문과 해싱값이 일치하면 true, 아니면 false를 반환합니다.   예제 logic_proc.php 18번 라인에 있습니다. This file contains bidirectional Unicode text that may be interpreted 더보기…