PHP로 개인 계정 구현하기
개인 계정은 사용자가 자신의 프로필 데이터를 수정할 수 있는 공간을 의미합니다.
사용자가 접속하면 자신의 프로필 데이터(로그인 및 비밀번호 제외, 이들은 특별한 방식으로 처리해야 함)를 수정할 수 있는 폼을 볼 수 있는 페이지 account.php를 만들어 봅시다.
사용자의 id를 GET 파라미터로 전달하지 않는다는 점에 유의하세요. 각 사용자가 account.php 페이지에서 다른 사람의 프로필 데이터가 아닌 자신의 데이터를 볼 수 있도록 구현할 것입니다.
이를 위해서는 사용자 인증 시 해당 사용자의 id를 세션에 다음과 같이 기록해야 합니다:
<?php
if (password_verify($_POST['password'], $hash)) {
$_SESSION['auth'] = true;
$_SESSION['id'] = $user['id'];
}
?>
그런 다음 account.php 페이지에 접속하면 세션에서 가져온 id를 가진 사용자를 데이터베이스에서 가져오는 SELECT 쿼리를 실행합니다:
<?php
$id = $_SESSION['id'];
$query = "SELECT * FROM users WHERE id='$id'";
$res = mysqli_query($link, $query);
$user = mysqli_fetch_assoc($res);
?>
사용자 데이터는 수정을 위한 폼에 표시해야 합니다. 예를 들어, 사용자의 이름과 성이라고 가정해 봅시다:
<form action="" method="POST">
<input name="name" value="<?= $user['name'] ?>">
<input name="surname" value="<?= $user['surname'] ?>">
<input type="submit" name="submit">
</form>
폼 제출 버튼을 클릭한 후에는 사용자 정보를 업데이트하는 쿼리를 실행해야 합니다:
<?php
if (!empty($_POST['submit'])) {
$name = $_POST['name'];
$surname = $_POST['surname'];
$query = "UPDATE users SET name='$name', surname='$surname' WHERE id=$id";
mysqli_query($link, $query);
}
?>
설명된 개인 계정을 구현하세요.