PHP 를 이용한 활용의 예 > 소프트웨어

본문 바로가기

소프트웨어

마이홈
쪽지
맞팔친구
팔로워
팔로잉
스크랩
TOP
DOWN

[PHP] PHP 를 이용한 활용의 예

profile_image
관리자
2024-10-05 15:06 144 0
  • - 첨부파일 : 20241005150614.png (24.0K) - 다운로드

본문

PHP를 이용한 실제 활용 예시로, 간단한 회원 로그인 시스템을 구현해보겠습니다. 


이 예제는 세션을 사용하여 로그인 상태를 관리하고, MySQL 데이터베이스와 연동하여 회원 정보를 저장 및 인증합니다.


1. 데이터베이스 설정


우선 MySQL에 users 테이블을 생성합니다.



CREATE DATABASE exampledb;


USE exampledb;


CREATE TABLE users (

    id INT(11) AUTO_INCREMENT PRIMARY KEY,

    username VARCHAR(50) NOT NULL UNIQUE,

    password VARCHAR(255) NOT NULL,

    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP

);



2. 회원가입 페이지 (register.php)



<?php

include 'db.php'; // 데이터베이스 연결


if ($_SERVER["REQUEST_METHOD"] == "POST") {

    $username = $_POST['username'];

    $password = password_hash($_POST['password'], PASSWORD_DEFAULT); // 비밀번호 해시


    $sql = "INSERT INTO users (username, password) VALUES ('$username', '$password')";

    if ($conn->query($sql) === TRUE) {

        echo "회원가입 성공!";

    } else {

        echo "Error: " . $sql . "<br>" . $conn->error;

    }

}

?>


<form method="POST" action="">

    Username: <input type="text" name="username" required><br>

    Password: <input type="password" name="password" required><br>

    <button type="submit">Register</button>

</form>



- password_hash(): 사용자 비밀번호를 안전하게 저장하기 위해 해시 처리합니다.


3. 로그인 페이지 (login.php)



<?php

session_start(); // 세션 시작

include 'db.php'; // 데이터베이스 연결


if ($_SERVER["REQUEST_METHOD"] == "POST") {

    $username = $_POST['username'];

    $password = $_POST['password'];


    $sql = "SELECT * FROM users WHERE username='$username'";

    $result = $conn->query($sql);


    if ($result->num_rows > 0) {

        $row = $result->fetch_assoc();

        if (password_verify($password, $row['password'])) { // 비밀번호 확인

            $_SESSION['username'] = $username; // 세션 설정

            echo "로그인 성공! 환영합니다, " . $_SESSION['username'];

        } else {

            echo "잘못된 비밀번호입니다.";

        }

    } else {

        echo "사용자가 존재하지 않습니다.";

    }

}

?>


<form method="POST" action="">

    Username: <input type="text" name="username" required><br>

    Password: <input type="password" name="password" required><br>

    <button type="submit">Login</button>

</form>



- session_start(): 세션을 시작하여 로그인 상태를 유지합니다.

- password_verify(): 해시된 비밀번호와 입력된 비밀번호를 비교합니다.


4. 로그아웃 페이지 (logout.php)



<?php

session_start();

session_unset();

session_destroy(); // 세션 삭제

echo "로그아웃 되었습니다.";

?>



5. 데이터베이스 연결 파일 (db.php)



<?php

$servername = "localhost";

$username = "root";

$password = "";

$dbname = "exampledb";


// 데이터베이스 연결

$conn = new mysqli($servername, $username, $password, $dbname);


// 연결 확인

if ($conn->connect_error) {

    die("Connection failed: " . $conn->connect_error);

}

?>



6. 로그인 후 접근 가능한 페이지 (welcome.php)



<?php

session_start();

if (!isset($_SESSION['username'])) {

    header("Location: login.php"); // 로그인하지 않은 사용자는 로그인 페이지로 리다이렉트

    exit();

}


echo "환영합니다, " . $_SESSION['username'] . "!";

?>


<a href="logout.php">로그아웃</a>



- 세션 검증: 로그인 상태를 확인하여, 로그인하지 않은 사용자는 로그인 페이지로 리다이렉트합니다.


7. 요약


이 예제는 다음과 같은 PHP의 기능을 활용합니다:

1. 회원가입: 사용자가 데이터베이스에 가입할 수 있는 기능.

2. 로그인: 사용자가 로그인하고 세션을 통해 인증 상태를 유지.

3. 로그아웃: 세션을 종료하여 로그인 상태 해제.

4. 비밀번호 보안: 비밀번호 해시와 검증을 통한 보안 유지.


이 방식은 PHP를 이용해 간단한 웹 애플리케이션을 만들 때 자주 사용되는 구조입니다. 더 발전시키면 사용자의 인증 및 권한 관리에 활용될 수 있습니다.

댓글목록0

등록된 댓글이 없습니다.

댓글쓰기

적용하기
자동등록방지 숫자를 순서대로 입력하세요.
게시판 전체검색