본문 바로가기

전체 글139

post restful api / 프리플라이트 / 왜 배포할 때 모든 도메인에서의 요청을 다 받으면 안될까 간단하게 이메일을 데이터베이스에 저장하는 API를 만들어보겠다..! 먼저 테이블을 다음과 같이 만들어준다. id INT AUTO_INCREMENT PRIMARY KEY,email VARCHAR(100) NOT NULL,createdat DATETIME NOT NULL 이렇게 3개만 넣자.  코드 먼저 살펴보자. 다음의 API는 이메일이 있는지 먼저 확인하고 있다면 409 오류 응답코드를 반환하고 없다면 INSERT 하는 것이다.  'Email is required']); }} else { http_response_code(404); echo json_encode(['message' => 'API not found']);}function get_reserved($email) { t.. 2024. 9. 19.
validateStatus - axios php로 api를 짰다.  코드 중에 대충 이런 코드가 있다. $preQuery = " SELECT email FROM reserved_user WHERE email = :email "; $stmt = $pdo->prepare($preQuery); $stmt->bindParam(':email', $email); $stmt->execute(); $result = $stmt->fetch(PDO::FETCH_ASSOC); if (!empty($result)) { // 이미 존재하는 이메일일 경우 http_response_code(409); // 중복된 데이터 (H.. 2024. 9. 18.
접근한정자 public- 누구나 접근할 수 있다.- 컨트랙트 내의 다른 함수, 외부 컨트랙트 또는 계정이 호출할 수 있다. * 특징- 상태 변수에 적용하면, 자동으로 getter 함수가 생성된다.- 함수는 컨트랙트 내부와 외부에서 호출할 수 있다. uint public totalSupply; // 상태변수는 자동으로 getter를 생성한다.function myFunction() public{ // 누구나 호출 가능한 함수이다.}  private- 오직 컨트랙트 내에서만 접근할 수 있다.- 상속받은 자식 컨트랙트도 접근할 수 없다. * 특징- 다른 컨트랙트나 외부 계정에서 호출할 수 없다.- 해당 컨트랙트 내에서만 접근 가능하다.uint private _totalSupply; // 이 컨트랙트 내에서만 접근 가능하다.. 2024. 9. 18.
php자체에 대해서 알아보자 언어에 애정을 가지려면... 그 언어에 대해서 잘 알아야 한다고 생각한다.. ( 문법 말고... ) ( 진짜 그 언어에 대해서... ) 원래 PHP의 약자는 Personal Home Page Tools 였음. 그 말대로 진짜 자기 페이지 만들때 쉽게 쓰라고 나온거라서 문법이 쉬웠다고 들음. 지금은 PHP : Hypertext Preprocessor의 재귀약자를 쓴다고 한다. 하이퍼텍스트 전처리기 근데 php를 검색해보면, 다른 언어와는 다르게 욕이 되게 많다. (?) 그래서 나도 php가 뭐하는 언어인지는 대충 알고 있었지만 (next.js가 사실 php랑 비스무리한 역할이라고 들었다), 욕 먹는 언어라는 건 확실히 알고 있었다.  근데 tiobe 2024를 보면 php는 꽤 상위에 있다.매년 개발자들이.. 2024. 9. 12.
inc 파일 ... 대신에? inc 파일- 헤더 정보를 참조하기 위해 소프트웨어 프로그램의 소스코드에서 사용하는 포함 파일이다.- .h 파일 형식과 유사하다. - 여러파일에 똑같은 소스가 들어가 있을 경우에 소스의 중복을 줄이기 위해서 만든 파일이다.- 소스의 최적화, 유지보수 효율 증대 등의 효과가 있음.- 주로 DB연결 / 호출 부분에서 가장 많이 쓰인다. php에서 사용될 경우 INC 파일 사용의 단점도 존재한다.- php 파일이 inc 파일을 참조하고 서버가 .inc 파일을 구문분석하도록 구성되지 않은 경우가 일반적이다.- 이 경우에 사용자는 URL 디렉토리를 방문하여, .inc 파일에서 php 소스코드를 볼 수 있다.- 따라서 php에서 inc파일을 포함 파일로 사용할 때 주의해야 한다. - 사용자들이 URL을 직접 만문해.. 2024. 9. 12.
PDO를 활용한 데이터베이스 연동 // PDO 객체 생성$pdo = new PDO("mysql:host=localhost;dbname=DB이름", "유저아이디", '유저비번');// 에러 모드 설정$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);// SQL 쿼리 작성$sql = "SELECT service_name, memo, userid, pw, updated FROM MyAccounts.accounts;";// 쿼리 준비$statements = $pdo->prepare($sql);// 쿼리 실행$statements->execute();while($row = $statements->fetch(PDO::FETCH_ASSOC)) { $serviceName = $row['s.. 2024. 9. 11.
간단한 프로파일링 예시 2024. 9. 11.
캐싱 예시 2024. 9. 11.
해시 테이블 사용하기 몇가지 볼 것들 1. globalphp에서는 기본적으로 함수 내에서 정의되지 않은 변수는 함수 외부의 변수에 접근할 수 없다.이를 해결하기 위해서 global 키워드를 사용하여 함수 내부에서 함수 외부에 선언된 전역변수를 사용할 수 있다.global 키워드는 php에서 변수를 함수 내부에서 사용할 수 있도록 해준다. 2. isset값이 있는지 체크한다. 정확히는 null 이 아닌지를 체크한다.null 이 아니면 ( 값이 있다면 ) true 리턴없으면 false 리턴 2024. 9. 11.
폼 처리 - XSS 공격 폼은 HTML의 요소를 사용하여 작성됩니다. 폼은 사용자들로부터 입력 받을 필드들을 포함합니다. 예를 들면 이라던지 등을 예시로 들 수 있습니다.다양한 형태가 있습니다. 이런 폼을 통해서 사용자로부터 입력받은 데이터를 서버에 전달하여 서버가 처리할 수 있도록 하는데 주로 2가지 방식을 사용합니다.  바로 GET과 POST 입니다.각각 용도와 사용법이 다릅니다.  먼저 GET 방식부터 알아볼까요? GET 방식은 데이터를 URL의 쿼리 스트링에 데이터를 포함해서 서버에 전송합니다.그러나 보안에 취약하고 데이터가 URL에 그대로 노출되기 때문에 민감한 정보를 전송할 때는 적합하지 않으나 최근에 보니 이런 영상도 있더라구요.  "상남자는 URL 따위 쓰지 않는다"...워낙 유명한 분이 만든 영상이라서 한번 .. 2024. 9. 11.