백엔드 개발 PHP 튜토리얼 PHP를 사용하여 간단한 온라인 예약 시스템을 구현하는 방법

PHP를 사용하여 간단한 온라인 예약 시스템을 구현하는 방법

Sep 25, 2023 am 11:12 AM
php 간단한 구현 온라인 예약 시스템

PHP를 사용하여 간단한 온라인 예약 시스템을 구현하는 방법

PHP를 사용하여 간단한 온라인 예약 시스템을 구현하는 방법

소개:

인터넷이 발전하면서 온라인 예약 시스템은 많은 산업 분야에서 표준이 되었습니다. 이 기사에서는 PHP 언어를 사용하여 간단한 온라인 예약 시스템을 구현하는 방법을 소개하고 해당 코드 예제를 제공합니다.

1. 시스템 요구 사항 분석

저희 온라인 예약 시스템에는 다음과 같은 기본 기능이 있어야 합니다.

  1. 사용자 등록 및 로그인: 사용자는 계정을 등록하고 로그인하여 관련 정보를 관리하고 예약할 수 있습니다.
  2. 호텔 목록 표시: 사용자는 시스템에서 호텔 목록을 탐색하고 해당 호텔 정보를 볼 수 있습니다.
  3. 호텔 예약: 사용자는 자신이 좋아하는 호텔을 선택하고 예약할 수 있습니다. 동시에 시스템은 사용자가 예약한 호텔 정보를 기록해야 합니다.
  4. 주문 관리: 사용자는 자신의 주문 정보를 확인하고 해당 관리 작업(주문 취소, 수정 등)을 수행할 수 있습니다.
  5. 백엔드 관리: 관리자는 시스템에서 호텔 및 주문 정보를 관리하고 해당 데이터에 대한 통계 및 보고서 생성을 수행할 수 있어야 합니다.

2. 데이터베이스 설계

MySQL에 두 개의 테이블을 만듭니다. 하나는 사용자 정보를 저장하는 사용자 테이블이고 다른 하나는 호텔 정보를 저장하는 호텔 테이블입니다. 사용자 정보 테이블의 구조는 다음과 같습니다.

CREATE TABLE user (user (
id int(11) NOT NULL AUTO_INCREMENT,
name varchar(50) NOT NULL,
email varchar(50) NOT NULL,
password varchar(50) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

酒店信息表的结构如下:

CREATE TABLE hotel (
id int(11) NOT NULL AUTO_INCREMENT,
name varchar(50) NOT NULL,
address varchar(100) NOT NULL,
price decimal(10,2) NOT NULL,
PRIMARY KEY (id id int(11) NOT NULL AUTO_INCREMENT,
name varchar(50) NOT NULL,

이메일 varchar(50) NOT NULL,

password varchar(50) NOT NULL,

PRIMARY KEY(id) >)
    ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
  1. 호텔 정보 테이블의 구조는 다음과 같습니다.

CREATE TABLE 호텔 (

id int(11) NOT NULL AUTO_INCREMENT,

name varchar(50) NOT NULL,

address varchar(100) NOT NULL,

price 십진수 (10,2) NOT NULL,

PRIMARY KEY (id)
    ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
  1. 3. 시스템 구현

등록 및 로그인 기능:

    코드 예시:
  1. register.php:
  2. <?php
    require 'db.php';
    
    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
        $name = $_POST['name'];
        $email = $_POST['email'];
        $password = password_hash($_POST['password'], PASSWORD_DEFAULT);
        
        $sql = "INSERT INTO user(name, email, password) VALUES('$name', '$email', '$password')";
        mysqli_query($conn, $sql);
        
        header('Location: login.php');
        exit;
    }
    ?>
    
    <form action="" method="post">
        <input type="text" name="name" placeholder="用户名" required>
        <input type="email" name="email" placeholder="邮箱" required>
        <input type="password" name="password" placeholder="密码" required>
        <button type="submit">注册</button>
    </form>
  3. login.php:
<?php
require 'db.php';

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $email = $_POST['email'];
    $password = $_POST['password'];
    
    $sql = "SELECT * FROM user WHERE email='$email'";
    $result = mysqli_query($conn, $sql);
    $user = mysqli_fetch_assoc($result);
    
    if ($user && password_verify($password, $user['password'])) {
        session_start();
        $_SESSION['user_id'] = $user['id'];
        header('Location: index.php');
        exit;
    } else {
        echo '用户名或密码错误';
    }
}
?>

<form action="" method="post">
    <input type="email" name="email" placeholder="邮箱" required>
    <input type="password" name="password" placeholder="密码" required>
    <button type="submit">登录</button>
</form>

호텔 목록 표시 및 예약 기능:

🎜코드 샘플: 🎜🎜index.php: 🎜
<?php
require 'db.php';

$sql = "SELECT * FROM hotel";
$result = mysqli_query($conn, $sql);
$hotels = mysqli_fetch_all($result, MYSQLI_ASSOC);
?>

<?php foreach($hotels as $hotel): ?>
    <h3><?php echo $hotel['name']; ?></h3>
    <p>地址:<?php echo $hotel['address']; ?></p>
    <p>价格:<?php echo $hotel['price']; ?></p>
    <a href="booking.php?id=<?php echo $hotel['id']; ?>">预订</a>
<?php endforeach; ?>

booking.php:
<?php
session_start();
require 'db.php';

if (!isset($_SESSION['user_id'])) {
    header('Location: login.php');
    exit;
}

$hotel_id = $_GET['id'];
$user_id = $_SESSION['user_id'];

$sql = "INSERT INTO booking(user_id, hotel_id) VALUES('$user_id', '$hotel_id')";
mysqli_query($conn, $sql);

echo '预订成功';
?>
🎜🎜주문 관리 기능: 생략, 사용자 ID를 기반으로 예약 테이블에서 주문 정보를 검색하고 해당 관리 작업을 수행할 수 있습니다. 🎜🎜백엔드 관리 기능 : 생략되었으며, 관리자 계정으로 로그인 후 호텔 및 주문 정보를 관리하고 집계할 수 있습니다. 🎜🎜🎜결론: 🎜🎜이 기사에서는 PHP 언어를 사용하여 간단한 온라인 예약 시스템을 구현하는 방법을 소개하고 해당 코드 예제를 제공합니다. 독자는 보다 완전한 기능을 달성하기 위해 자신의 필요에 따라 해당 수정 및 확장을 수행할 수 있습니다. 이 기사가 도움이 되기를 바랍니다! 🎜

위 내용은 PHP를 사용하여 간단한 온라인 예약 시스템을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

PHP에서 현재 날짜와 시간을 얻는 방법은 무엇입니까? PHP에서 현재 날짜와 시간을 얻는 방법은 무엇입니까? Aug 31, 2025 am 01:36 AM

usedate ( 'y-m-dh : i : s') withdate_default_timezone_set () togetCurrentDateAndTimeInphp, AccurateresultsBysetTingTheiredTimezonElike'America/new_york'beforecallingdate ()를 보장합니다.

PHP에서 오류보고 수준을 설정하는 방법은 무엇입니까? PHP에서 오류보고 수준을 설정하는 방법은 무엇입니까? Aug 31, 2025 am 06:48 AM

useError_reporting () toseterRorlevelsInphp, soalse_allfordevelopmentor0forproduction, andcontroldisplayorloggingviaini_set () toenhancedebuggingandsecurity.

PHP에서 타임 스탬프를 사용하는 방법은 무엇입니까? PHP에서 타임 스탬프를 사용하는 방법은 무엇입니까? Aug 31, 2025 am 08:55 AM

Time ()을 사용하여 현재 타임 스탬프를 가져오고 date ()는 시간을 형식화하고 strtotime ()는 날짜 문자열을 타임 스탬프로 변환합니다. DateTime 클래스는 복잡한 작업에 대한 시간대 및 날짜 작업을 처리하는 것이 좋습니다.

PHP에서 객체의 클래스 이름을 얻는 방법은 무엇입니까? PHP에서 객체의 클래스 이름을 얻는 방법은 무엇입니까? Sep 01, 2025 am 04:48 AM

useget_class ($ 객체) togetTheClassNameAtruntime; 2.UsemyClass :: classForCompile-timeClassNamestrings, 특히 NamesPaces; 3.InsideAclassMethod, get_class ($ this) returnShurrentObject'sclassName.

키보드에서 작동하지 않는 키를 입력하십시오 키보드에서 작동하지 않는 키를 입력하십시오 Aug 30, 2025 am 08:36 AM

먼저, CheckPhysicalIssueslikedebRisorDamageAndcleanTheKeyBoardOrtestwithanextondalone; 2. TesteNerKeyIndifferentAppStodEtMineiftheissueissOftware-specific; 3.RestArtyOUrcomputerTerEsolVetemporaryGlitches; 4. DisableStickyyys, Filterglek, Ortogglek

PHP에서 ==와 ===의 차이점은 무엇입니까? PHP에서 ==와 ===의 차이점은 무엇입니까? Sep 01, 2025 am 07:50 AM

=== 값과 유형은 동일해야합니다. == 값이 동일한지 여부에 대해서만 관심을 갖습니다. 예를 들어, 5 == "5"는 참이지만 5 === "5"는 유형에 따라 False입니다. === 유형 변환 없음, 더 안전하고 엄격합니다.

PHP에서 데이터를 암호화하고 해독하는 방법은 무엇입니까? PHP에서 데이터를 암호화하고 해독하는 방법은 무엇입니까? Sep 01, 2025 am 04:11 AM

useopenssl_encrypt () andopenssl_decrypt () withaes-256-cbcforsecurepencryption. generatearandomivperencryption, derivekeyviasha-256, and storeivwithciphertusingbase64encoding.fordecrypry, 추출물 regortecoforecopppleantecplaintecppleantecppleantecplaintextexted

233 파라다이스 웹 버전은 다운로드하지 않고 재미있게 사용할 수 있습니다. 233 파라다이스 웹 주소 233 파라다이스 웹 버전은 다운로드하지 않고 재미있게 사용할 수 있습니다. 233 파라다이스 웹 주소 Sep 02, 2025 pm 02:03 PM

233 파라다이스 웹 버전의 입구는 https://www.233leyuan.com입니다. 이 플랫폼은 다운로드가 필요하지 않으며 직접 온라인 플레이를 지원하여 풍부한 게임 유형, 원활한 운영 경험 및 완전한 커뮤니티 상호 작용 기능을 제공합니다.

See all articles