11주차 주간보고서

구현된 기능

  • 비밀번호 찾기 (이메일 or 임시비밀번호)
  • 비밀번호 변경
  • 세션만료 / 자동 로그아웃
  • 회원탈퇴
  • 해시사용 로그인
  • 관리자메인화면(최근주문, 리뷰요약, 매출요약)
  • 관리자 작업로그
  • 리뷰 좋아요 / 신고
  • 예약전체관리
  • 포인트/마일리지 적립 및 표시
  • 쿠폰확인 및 적용
  • 검색기능 구현
  • 메뉴 상세보기 페이지
  • 자리확인 버튼 추가
  • 안드로이드앱연결
  • 장바구니세션연결
  • 발표자료료

비밀번호 찾기 (이메일 or 임시비밀번호)

비밀번호 찾기

페이지 목적: 비밀번호를 잊은 사용자가 이메일과 학번을 입력하면 인증 코드를 이메일로 받아 비밀번호를 재설정할 수 있게 함

입력 항목: 이메일, 학번

동작 흐름: 입력 → 버튼 클릭 → 서버에 POST 요청 → 인증코드 발송 처리

디자인: 모던하고 반응형 UI

https://infognu.ansan.ac.kr/~i2151040/Capstone/pages/user/forgot-password.php


비밀번호 변경

관리자로 로그인 했을 때 나타나는 화면

password-change.form.php에서 처리하는 비밀번호 변경 로직

  1. 현재 비밀번호가 데이터베이스에 저장된 값과 일치하는지 확인
  2. 새 비밀번호와 확인값이 일치하는지 확인
  3. 비밀번호 복잡도 검증 (예: 길이, 문자 포함 여부 등)
  4. 새 비밀번호를 해시하여 DB에 저장
  5. 성공/실패 여부에 따라 사용자에게 알림 or 리디렉션

https://infognu.ansan.ac.kr/~i2151040/Capstone/admin/password-change-form.php


세션만료 / 자동 로그아웃

자동 로그아웃 조건
session.gc_maxlifetime = 1800 ; 30분
$_SESSION[‘last_activity’] = time(); // 로그인 시 기록
if (isset($_SESSION[‘last_activity’]) && (time() – $_SESSION[‘last_activity’]) > 1800) {
session_unset();
session_destroy();
header(“Location: login.php?timeout=1”);
exit;
}
$_SESSION[‘last_activity’] = time(); // 활동 갱신

자동 로그아웃 표시login.php에서 ?timeout=1로 alert 표시
세션 만료 처리logout.php에서 session_destroy() 등으로 처리
리디렉션로그아웃 후 main.php 또는 login.php?timeout=1로 이동
세션 시간 체크$_SESSION['last_activity'] 활용 가능 (선택 사항)

https://infognu.ansan.ac.kr/~i2151040/Capstone/pages/user/mypage.php


회원탈퇴

https://infognu.ansan.ac.kr/~i2151040/Capstone/auth/delete_account.php

탈퇴 의사 확인 화면 (delete_account.php)
사용자에게 탈퇴를 정말 진행할 것인지 묻는 UI.
[탈퇴하기] 클릭 → delete_account_reason.php로 이동 (GET 방식)

탈퇴 사유 선택 화면 (delete_account_reason.php)

  • 사용자가 탈퇴 사유를 선택(checkbox)하거나 기타 의견을 작성할 수 있는 폼을 제공.
  • 실제로 회원 삭제 및 세션 파기 로직은 여기서 수행됨.
  • [1단계 – delete_account.php]
  • └→ [탈퇴하기] → delete_account_reason.php
  • [2단계 – delete_account_reason.php]
  • └→ 사유 제출 (POST)
  • [DB 사용자 삭제 + 세션 파기]
  • [메인 페이지 리디렉션 + 탈퇴 완료 알림]

해시사용 로그인


관리자메인화면

관리자로 로그인 했을 때 나타나는 화면

https://infognu.ansan.ac.kr/~i2151040/Capstone/admin/main.php


관리자 작업로그

관리자 작업 로그 화면

https://infognu.ansan.ac.kr/~i2151040/Capstone/admin/log/admin_log.php


리뷰 좋아요 / 신고

작성한 리뷰에 좋아요 기능과 신고 기능을 추가

https://infognu.ansan.ac.kr/~i2151040/Capstone/pages/review/review.php?restaurant_id=2

신고 버튼을 누르면 해당 리뷰를 신고 할 수 있는 창이 나옴

https://infognu.ansan.ac.kr/~i2151040/Capstone/pages/review/declaration.php?review_id=28&reported_user_id=13&return_url=%2F%7Ei2151040%2FCapstone%2Fpages%2Freview%2Freview.php%3Frestaurant_id%3D2

리뷰 신고 처리

https://infognu.ansan.ac.kr/~i2151040/Capstone/admin/declaration/dec_manage.php


예약전체관리

일반 회원이 로그인 했을 때 나타나는 화면

https://infognu.ansan.ac.kr/~i2151040/Capstone/admin/reservation/res_manage.php


포인트/마일리지 적립 및 표시

관리자로 로그인 했을 때 나타나는 화면

https://infognu.ansan.ac.kr/~i2151040/Capstone/admin/mypage.php


쿠폰확인 및 적용

일반 회원이 로그인 했을 때 나타나는 화면

https://infognu.ansan.ac.kr/~i2151040/Capstone/pages/user/mypage.php


검색기능 구현

가게 이름 혹은 음식 이름을 검색하면 해당 가게가 나오도록 설정
예시) 검색창에 한정식을 검색해도 한정식이라는 이름의 가게가 나오고 한정식 가게에서 파는 메뉴인 제육볶음을 검색해도 한정식이라는 이름의 가게가 나옴

https://infognu.ansan.ac.kr/~i2151040/Capstone/main.php


메뉴 상세보기 페이지

가게 화면에서 음식을 클릭하면 쿼리스트링으로 해당 restaurant_id와 food_id를 받아와서 그 메뉴에 대한 상세 페이지를 보여줌

https://infognu.ansan.ac.kr/~i2151040/Capstone/pages/menu/menu_detail.php?restaurant_id=1&food_id=1


자리확인 버튼 추가

관리자로 로그인 했을 때 나타나는 화면

https://infognu.ansan.ac.kr/~i2151040/Capstone/admin/mypage.php


안드로이드 앱 연결

안드로이드 스마트폰에서 확인 및 사용이 가능하도록 앱과 연결시켰습니다

또한 단순하게 웹 페이지를 보여주기만 하면 안된다는 구글 플레이스토어 정책에 따라서,

추가 앱 기능을 구현하였습니다.

  • 로딩화면
  • 뒤로가기 버튼 구현
  • 웹 페이지와 정보교환 (alert –> toast 연결, 쿼리스트링으로 유저정보 받음)
  • 세션 유지 (관련 내용은 후술할 장바구니 세션 연결과 이어집니다)
  • 앱 설정화면 구현 (자동로그인 및 알림받기)(알림받기는 미구현)
  • 카메라 사용(미구현)

https://drive.google.com/file/d/120BbFOMAPgzQ-okY_mH1WHnF8ZYCTYEJ/view?usp=drive_link


장바구니 세션 연결(다음주에 구현 예정)

교수님이 말씀하신대로 세션에 따라 장바구니를 볼 수 있고, 사용이 가능하도록 했습니다.

위에서 구현한 앱에서 세션 유지와 정보교환으로, 세션을 받아오고, 자신만의 장바구니를 볼 수 있도록 하였습니다.

https://infognu.ansan.ac.kr/~i2151040/Capstone/pages/user/mypage.php


발표자료

https://docs.google.com/presentation/d/e/2PACX-1vTk8DT-FQPILakgQ5DTfSR3KU5LF2e-8IkeWLrn3CKQ-nwGrAvq8PjDlPOVpRAwIw/pub?start=true&loop=true&delayms=60000


다음 주 진행 사항

비어있는 파일을 구현하고, 연결해 최종완성하고, 앱을 구현하여 앱과 연결 할 예정입니다.

Be the first to comment

Leave a Reply

Your email address will not be published.


*