절차적인 PHP 프로그래밍에서 작업 할 때 사용자 세션이 만들어지고 저장되는 로그인 페이지가 생겼습니다. 그런 다음 모든 페이지에서 사용자의 이름을 표시하고 필요한 정보를 검색했습니다.사용자 클래스를 어떻게 디자인하고 사용해야합니까?
하지만 저는 무기력합니다. 어떻게 목표 프로그래밍에서이 목표를 달성 할 수 있습니까?
그래서, 절차 (login.php) :
if ($_POST['password'] != '' && $_POST['username'] != '') {
// check if password&username combination exists in database etc.
$_SESSION['user_id'] = $user_id;
$_SESSION['username'] = $username;
}
나는 그것이 OOP에서 다음과 같이 할 것입니다 가정 : 나는 세션을 만들려면 어떻게해야합니까 : 여기
// include user class
if ($_POST['password'] != '' && $_POST['username'] != '') {
// check if password&username combination exists in database etc.
$user = new User();
$user->id = $userId;
$user->username = $username;
을하지만 문제인가? 그리고이 객체는이 "login.php"페이지 외부에 존재하지 않을 것입니다. 왜냐하면 내가 거기 생성하기 때문입니다. 이 정보를 어디서나 액세스 할 수있게하려면 어떻게해야합니까?
그리고 사용자 클래스에 쿼리를 넣지 않고 특수 클래스 (PDO라고 가정 해 봅시다)를 사용하여 데이터베이스에서 정보를 얻으려면 어떻게해야합니까?
난 그냥 다른 페이지에 다시 액세스 할 때 당신이// include user class
session_start();
if ($_POST['password'] != '' && $_POST['username'] != '') {
// check if password&username combination exists in database etc.
$user = new User();
$user->id = $userId;
$user->username = $username;
$_SESSION['user_obj'] = serialize($user);
그리고 거의가 시도 구조
쉬운 것입니다, 나는 그 제안 사용자 클래스 초기화 (모든 페이지에서 코드를 다시 작성할 필요가 없음)와 같이 필요한 모든 것을 설정하는 "마스터 파일"을 자동으로 추가하여 모든 스크립트 실행을 시작합니다. 아파치 지시문을 사용할 수 있다면 "auto_prepend_file"php 플래그를 사용하고, 그렇지 않으면 모든 페이지 맨 위에 require/include를 사용하십시오. – Felthragar