쿠키굽기

Sangyeong Je·2022년 10월 5일
0

프로그래밍

목록 보기
5/11

프론트

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>Document</title>
	<script  src="//code.jquery.com/jquery-latest.min.js"></script>
</head>
<body>
	<!-- 쿠키가 있을 때 없을 때 구분 -->
	<?php if(!isset($_COOKIE["cookie"])){ ?>
		<form class="form">
			<label>이름: <input type="text" name="name" class="name"></label>
			<label>회사: <input type="text" name="company" class="company"></label>
			<a href="#" class="submit">전송</a>
		</form>
	<?php }else {
		/**
		* cookie 의 json화 한 배열을 다시 돌림
		* 두번째 인수를 true 로 넣어야 배열값으로 리턴됨 <- 왜?
		* false 넣으면 오브젝트로 반환됨
		*/
		$cookie = JSON_decode($_COOKIE['cookie'], true);
		// 배열을 불러옴
		echo "<p class='result'>이름은 {$cookie['name']}이고 회사는 {$cookie['company']} 입니다.</p>";
		}
	?>
	
	<script type="text/javascript">
		$('.submit').on({click:function(){
			$.ajax({
				type: 'post',
				url: 'ajax_result.php',
				async: true,
				data: {'name': $('.name').val(), 'company': $('.company').val()},
				success: function(result){
					alert('쿠키를 생성했습니다. 새로고침 해주세요');
				},
				error: function(){
					alert('통신 오류');
				}
			})
			return false;
		}});
	</script>
</body>
</html>

<?php 
	$name = $_POST['name'];
	$company = $_POST['company'];

	// POST 로 받아온 값을 배열로 만듬
	$value = array('name' => $name, 'company' => $company);
	// 쿠키에 넣기 위해 JSON (문자)로 변환
	$valueString = json_encode($value,JSON_FORCE_OBJECT);
	// 쿠키 생성 setcookie("쿠키이름","쿠키 값","생존 시간", "경로");
	setcookie ("cookie", $valueString, time() + (60 * 30), "/");
 ?>

0개의 댓글