php - 회원가입 등록처리

이태현·2025년 7월 13일

Web 개발

목록 보기
12/53
post-thumbnail

회원등록

// 회원 등록
if ($mode == "input") {
  // 프로필 이미지 처리
  $arr = explode(".", $_FILES["photo"]["name"]);
  $ext = end($arr);
  $photo = $id . "." . $ext;

  copy($_FILES["photo"]["tmp_name"], "../data/profile/" . $photo);

  $arr = [
    "id" => $id,
    "name" => $name,
    "password" => $password,
    "email" => $email,
    "zipcode" => $zipcode,
    "addr1" => $addr1,
    "addr2" => $addr2,
    "photo" => $photo,
  ];

  $mem->input($arr);
}

  • 필자는 form 태그 안에 mode라는 hidden 값을 주어서 해당 값으로 회원가입을 다뤘습니다.
  1. 프로필 이미지가 겹칠 수가 있기 때문에 ID. 확장자로 통일하였습니다.
  2. 확장자를 구하기 위해서 프로필의 이름과 확장자를 나눠서 확장자만 저장했습니다.
  3. ID와 확장자를 붙여서 해당 경로로 파일을 복사하였습니다.
  4. DB에 등록할 값들을 배열에 저장합니다.
  5. 저장된 배열을 member 클래스로 보내서 쿼리를 실행시킵니다.

회원등록 - DB

// 회원 등록
  public function input($marr)
  {
    $sql = "INSERT INTO member(id, name, password, email, zip_code, addr1, addr2,photo, create_at, ip) VALUES(:id, :name, :password, :email, :zipcode, :addr1, :addr2, :photo, NOW(), :ip)";
    $stmt = $this->conn->prepare($sql);
    $stmt->bindParam(":id", $marr["id"]);
    $stmt->bindParam(":name", $marr["name"]);
    $stmt->bindParam(":password", $marr["password"]);
    $stmt->bindParam(":email", $marr["email"]);
    $stmt->bindParam(":zipcode", $marr["zipcode"]);
    $stmt->bindParam(":addr1", $marr["addr1"]);
    $stmt->bindParam(":addr2", $marr["addr2"]);
    $stmt->bindParam(":photo", $marr["photo"]);
    $stmt->bindParam(":ip", $_SERVER["REMOTE_ADDR"]);
    $stmt->execute();
  }
}
  1. DB에 저장하기 위해서 INSERT INTO 구문을 사용하였습니다.
  2. 해당 쿼리를 prepare로 준비시켜둡니다.
  3. 쿼리를 바인딩 후 쿼리를 실행시킵니다.

DB 결과

  • DB에 결괏값이 등록된 것을 확인할 수 있습니다.

마무리

다음 시간에는 이메일 형식 체크와 가입 성공했을 시 페이지로 이동하는 부분을 해보겠습니다.

긴 글 봐주셔서 감사합니다.

profile
이해하고 분석하고 지배한다

0개의 댓글