conn = $db; // PDO 객체 주입 } // 아이디 중복체크용 멤버 함수, 메소드 public function id_exists($id) { $sql = "SELECT * FROM member WHERE id=:id"; $stmt = $this->conn->prepare($sql); $stmt->bindParam(':id', $id); $stmt->execute(); return $stmt->rowCount() ? true : false; } // 이메일 형식 체크 public function email_format_check($email) { return filter_var($email, FILTER_VALIDATE_EMAIL); } public function email_exists($email) { $sql = "SELECT * FROM member WHERE email=:email"; $stmt = $this->conn->prepare($sql); $stmt->bindParam(':email', $email); $stmt->execute(); return $stmt->rowCount() ? true : false; } // 회원 정보 입력 public function input($marr) { $sql = "INSERT INTO member(id, password, name, email, zipcode, addr1, addr2, photo, create_at, ip) VALUES (:id, :password, :name, :email, :zipcode, :addr1, :addr2, :photo, NOW(), :ip)"; $stmt = $this->conn->prepare($sql); $stmt->bindParam(':id', $marr['id']); $stmt->bindParam(':password', $marr['password']); $stmt->bindParam(':name', $marr['name']); $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(); } // 로그인 public function login($id, $pw) { // 아이디로 회원 정보 조회 $sql = "SELECT * FROM member WHERE id = :id LIMIT 1"; $stmt = $this->conn->prepare($sql); $stmt->bindParam(':id', $id); $stmt->execute(); $member = $stmt->fetch(PDO::FETCH_ASSOC); if (!$member) { return false; // 아이디 없음 } // 입력 비밀번호 vs DB 해시 비교 if (password_verify($pw, $member['password'])) { return true; } else { return false; } } }