time()
-int형이고 void인자없는 함수로 반환값:현재시각
1970년도 부터 경과한시간을 초단위로 계산한값으로 현재시간을 알려준다.
쿠키
쿠키 서버에서 사용자컴퓨터에 어떤웹사이트에 접속한 흔적 남김 text파일로 그사용자가 다시 접속하게 됐을때 쿠키를 읽어볼수있게
(로그인상태유지와같은기능에,보안은 낮고 편의성을 높은)
<?php
$a = setcookie("userid","kdhong", time()+60);//사용자 컴퓨터에 쿠키저장
$userid=$_COOKIE["userid"];//쿠키불러오기
$a= setcookie("userid","");//변수안의 값을 없애면 쿠키삭제하는것과 같다.
//php설정중 register_globels=Off이어야 할수있다.
if($a){//값이 들어있음 참 이라는뜻
print("쿠키 userid생성! 60초간 지속됨!");
}
?>
setcookie()
-bool setcookie(string name,stringm value,int expire(소멸기간), string path,string domain,secure )
슈퍼글로벌변수.
쿠키명(필수) : 설정 될 쿠키 이름을 결정함
쿠키값(선택) : 쿠키 이름에 입력될 값
만료시간(선택) : Default 값은 0이며 쿠키가 유지될 시간을 설정,시간이 지나면 자동삭제
경로(선택) : 경로를 지정할 경우 특정 위치와 하위 경로에서만 사용가능하도록 설정됨
슬러쉬(/) : 슬러쉬 기호를 값으로 입력할 경우 전체 경로에서 사용됨을 의미
도메인(선택) : 사용될 도메인을 지정가능함. 서브도메인 입력시 해당 서브도메인만 사용가능
보안(선택) : 보안 프로토콜인 https에서만 사용가능하도록 설정함
httponly : HTTP에서만 사용가능하도록 하여(서버단 언어로만...) 스크립트에 의한 쿠키 접근을 허용 안하게 함.
-반환값 true/false
-<html>이나<head>태그이전에 사용해야 한다 태그를 먼저 사용하면 쿠키를 생성할수 없다
-보통 로그인 상태유지에 많이 사용한다.
<html><!--로그인폼-->
<head>
<title>로그인양식</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<form method="post" action="login_result.php">
<body><input type="text" name="ueserid" placeholder="아이디" required autofocus><!--placeholder:누르면 입력창으로 변하게-->
<input type="password" name="password" placeholder="비밀번호" required autofocus>
<input type="checkbox" name="chbox" value="yes">로그인 상태유지<
<input type="submit" value="로그인">
</form>
</body>
</html>
<?php
$ueserid = $_REQUEST["ueserid"];//로그인 정보 받아오기
$password = $_REQUEST["password"];
$chbox = $_REQUEST["chbox"];
if($chbox =="yes"){//로그인유지 체크박스가 활성화되면 쿠키생성하기
$a = setcookie("userid","dbwls");
$b = setcookie("password","12345");
}
if($ueserid=="dbwls" && $password=="12345"){//아이디패스워드 맞으면 로그인성공
print "로그인";
}
else{//아이디패스워드 틀리면 경고창띄우기
?>
<script>alert("아이디와 비밀번호가 틀립니다.")
history.back();
</script>
<?php
}
?>
쿠키 확인하는법
엣지
브라우저상단> 설정>쿠키및 사이트 권한>쿠키및사이트 데이터 관리및삭제>모든쿠키및사이트 데이터 보기
세션
-사용자 웹브라우저로 서버에 접속하게 되면 세션아이디가 잡힘(유일성)
-페이지중 반드시 로그인해야지만 볼수있는 페이지를 만들떄 사용
-서버 중심으로.세션정보는 서버에 데이터가 저장되고 클라이언트에 키가 저장되어 대등하게 들어있다.
브라우저는 필요할 때마다 이 키값을 이용하여 서버에 저장된 데이터를 사용하게 된다.
-쿠키처럼 파일 단위로 남기는것이 아니기 때문에 보안성 문제떄문에 세션이 더많이 활용된다.
-세션변수는 globels변수로 이페이지 뿐만아니라 다른페이지에서도 영향을 끼칠수있음.
-등록된 세션 변수는 등록을 해지하지 않는 한 세션이 끝날 때까지 유지됩니다.
세션활성화와 등록
session_start();
$_SESSION['userid']="dbwls";
삭제
unset($_SESSION['userid']);
위의 실습에 얹어 하겠음
<?php
session_start();//세션시작
$ueserid = $_REQUEST["ueserid"];//로그인 정보 받아오기
$password = $_REQUEST["password"];
$chbox = $_REQUEST["chbox"];
$_SESSION["userid"]=$ueserid;//세션변수생성
if($chbox =="yes"){//로그인유지 체크박스가 활성화되면 쿠키생성하기
$a = setcookie("userid","dbwls");
$b = setcookie("password","12345");
}
if($ueserid=="dbwls" && $password=="12345"){//아이디패스워드 맞으면 넘기기
print "로그인";
}
else{//아이디패스워드 틀리면 경고창띄우기
?>
<script>alert("아이디와 비밀번호가 틀립니다.")
history.back();
</script>
<?php
}
?>
다른페이지에서도 세션정보 사용가능한지 확인하기
연계받지 않아도 같은 서버안에 있다면 세션정보 사용가능하다.
<?php
session_start();
print $_SESSION["userid"]."님의 방문을환영합니다.<p>";
?>
'php공부' 카테고리의 다른 글
php mysql연동오류 (0) | 2023.04.19 |
---|---|
쿠키와 세션2 (0) | 2023.04.18 |
[PHP기초]함수 (0) | 2023.04.18 |
[php기초] 배열,2차배열 (0) | 2023.04.18 |
[PHP기초] if조건문과, while반복문 (0) | 2023.04.17 |