[16] PHP - 나의 정보 확인 및 수정

2024. 6. 10. 08:30PHP

728x90

[ 환경 ]
ㄴ php 7


1. 나의 정보 페이지 이동

ㄴ 로그인 후 나의정보 클릭

 

2. 나의 정보 페이지

<?php 

	require_once 'config.php'; // DB연결구문
	require_once 'logincheck.php'; // 로그인 체크

	// 고유번호로 나의정보 조회
	$sql = "SELECT * FROM member WHERE idx = '{$login}'";
	$result = $conn->query($sql);
	$myinfo = $result->fetch_assoc();

?>

ㄴ 해당코드로 나의 정보 출력

ㄴ 나의 정보 값 축약형 출력을 사용.

ㄴ 페이지 확인

 

3. 나의 정보 수정 페이지(수정 폼)

ㄴ 수정페이지 이동시 get값을 붙여서 이동하는 방법도 있으나, 보안상 각 페이지에서 세션값 이용으로 진행

ㄴ 2번과 같은 php코드로 값 호출

ㄴ 현재 자신의 계정에 대한 고유번호를 input hidden에 담아서 정보 전송시 함께 보낸다.

action경로에 get값으로 보내는 방법이 있지만, 페이지 주소로 노출이 되기때문에 해당방법을 사용.

- 스크립트에서 보낼땐 다른방법 사용이 가능하며 추후 포스팅.

ㄴ 개발자도구에서 input hidden에 value가 담긴것 확인

ㄴ html페이지

ㄴ 수정처리전 보내야할 정보는 모두 담았고, 준비는 끝났다.

 

4. 나의 정보 수정 처리(PHP 기능페이지)

<?php 
	require_once 'config.php';

	$idx = $_POST['idx']; // 회원고유번호
	$password = $_POST['password']; // 비밀번호
	$password_ch = $_POST['password_ch']; // 비밀번호확인
	$name = $_POST['name']; // 이름
	$email = $_POST['email']; // 이메일

	// 비밀번호 수정할 경우
	if($password){
		// 비밀번호 확인 조건문
		if($password != $password_ch){
			echo "<script>alert('{$password}/{$password_ch}비밀번호가 일치하지 않습니다.'); history.back(); </script>";
			echo "<script>history.back(); </script>";
			die();
		}

		// 비밀번호를 입력한 경우만 쿼리문 작성 (비밀번호 미 입력시 다른 항목들만 수정될수 있게 장치.)
		$pw_query = ", pw = password('{$password}')";
	}


	// 업데이트문 작성
	$update = "
		UPDATE member SET
			name = '{$name}'
		,	email = '{$email}'
			{$pw_query}
		WHERE idx = '{$idx}'
	";

	$myupdate = $conn->query($update); // 객체지향
	if($myupdate){
		echo "<script>alert('나의정보가 수정되었습니다.'); window.location.href='myv.php'; </script>";
		die();
	}else{
		die("나의정보 수정에 실패하였습니다.\n관리자에 문의 해주시기 바랍니다.");
	}
?>

ㄴ hidden으로 보낸 회원고유번호를 변수로 선언하여 사용해야한다. (본인 계정을 찾아야 하기때문)

ㄴ 비밀번호 미입력 유효성체크는 제외하고, 비밀번호 확인은 비밀번호를 입력한 경우만 한다.

- 비밀번호는 수정하지 않고, 이름과 이메일만 수정할 수 있기 때문.

- 비밀번호 update 쿼리도 비밀번호만 존재할 경우에 변수로 만들어둔다.

ㄴ 회원 고유번호로 update문의 where 조건문에 사용한다. (본인 계정만 수정되도록)

 

5. 최종 기능 확인

ㄴ 정보 수정 완료.

728x90

'PHP' 카테고리의 다른 글

[18] PHP - 회원 목록(게시판 목록)  (0) 2024.06.14
[17] PHP - 파일 구조 갖추기  (0) 2024.06.10
[15] PHP - 회원가입(비밀번호 확인)  (0) 2024.06.07
[14] PHP - 회원가입  (1) 2024.06.07
[13] PHP - CURL 실제활용  (0) 2024.05.06