Google Login with Google

# PHP 로그인 오류 해결 방법 (세션 유지 안됨 / 로그인 실패 문제)


## 1. 문제 상황 설명

PHP로 로그인 기능을 구현했는데, 다음과 같은 문제가 발생하는 경우가 많습니다.

* 로그인 후에도 계속 로그인 페이지로 돌아감
* 아이디/비밀번호가 맞는데도 로그인 실패
* 로그인은 되지만 새로고침하면 로그아웃됨
* 세션이 유지되지 않음

이 문제는 초보 개발자뿐 아니라 실제 서비스에서도 자주 발생하는 오류입니다.

---

## 2. 원인 분석

이러한 로그인 오류는 대부분 다음과 같은 원인에서 발생합니다.

### (1) session_start() 누락

세션을 사용하려면 반드시 페이지 상단에서 session_start()를 호출해야 합니다.

### (2) 데이터베이스 연결 오류

DB 연결이 제대로 되지 않으면 로그인 검증 자체가 실패합니다.

### (3) 비밀번호 비교 방식 문제

암호화된 비밀번호를 단순 비교하는 경우 오류가 발생합니다.

### (4) 쿠키 설정 문제

브라우저에서 쿠키가 차단되어 있으면 세션 유지가 안 됩니다.

---

## 3. 해결 방법

각 원인에 따른 해결 방법은 다음과 같습니다.

### ✔ session_start() 추가

모든 로그인 관련 페이지 최상단에 반드시 추가해야 합니다.

### ✔ DB 연결 확인

mysqli 또는 PDO 연결이 정상적으로 이루어졌는지 확인합니다.

### ✔ password_hash / password_verify 사용

비밀번호는 반드시 암호화 후 비교해야 합니다.

### ✔ 쿠키 설정 확인

브라우저 쿠키 허용 여부를 확인합니다.

---

## 4. 코드 예시

다음은 기본적인 PHP 로그인 처리 코드입니다.

```php
<?php
session_start();

$conn = new mysqli("localhost", "user", "password", "dbname");

$id = $_POST['id'];
$pw = $_POST['pw'];

$sql = "SELECT * FROM users WHERE id = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param("s", $id);
$stmt->execute();

$result = $stmt->get_result();
$user = $result->fetch_assoc();

if ($user && password_verify($pw, $user['password'])) {
$_SESSION['user_id'] = $user['id'];
echo "로그인 성공";
} else {
echo "로그인 실패";
}
?>
```

---

## 5. 정리

PHP 로그인 오류는 대부분 기본적인 설정 문제에서 발생합니다.

* session_start() 반드시 사용
* 비밀번호는 암호화 후 비교
* DB 연결 상태 확인
* 쿠키 설정 확인

이 네 가지만 제대로 설정해도 대부분의 로그인 문제는 해결됩니다.

---

💡 추가 팁
로그인 기능을 구현할 때는 보안까지 고려하여 SQL Injection 방지, HTTPS 적용 등을 함께 진행하는 것이 좋습니다.
← Back to list
💬 Comments (1)
전혜주
전혜주 Apr 27, 2026 · 12:30
구글 로그인 기능 말고, php 로그인 기능 이용시 일어나는 전반적인 문제들입니다. 위의 지시사항 잘 참조해서 실행해 보아요.