web1/config/member.php
2025-12-04 23:07:57 +09:00

111 lines
3.0 KiB
PHP

<?php
// Member Class file
class Member
{
// 멤버 변수, 프로퍼티
private $conn;
// 생성자
public function __construct($db)
{
$this->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;
}
}
public function logout()
{
if (session_status() === PHP_SESSION_NONE) {
session_start();
}
// 세션 변수 비우기
$_SESSION = [];
// 세션 쿠키 제거
if (ini_get('session.use_cookies')) {
$params = session_get_cookie_params();
setcookie(
session_name(),
'',
time() - 42000,
$params['path'],
$params['domain'],
$params['secure'],
$params['httponly']
);
}
session_destroy();
header('Location: ../index.php');
exit;
}
}