본문 바로가기
php공부

쿠키와 세션2

by 몽일! 2023. 4. 18.

수정한부분

(1)전 포스트에서 했더 실습에서 체크박스를 누르 지않고 넘어갔을시 떳던 오류가있었다.

이유는 일단 체크값을 받아오기로 하고 그값으로 쿠키를 만들지를 판단하는데 체크박스값이 없는채로 넘어갔기 때문에.

값이 없다고 오류뜨는거임

값이 있으면 참->전달받은 값이 있으면 트루 없으면 페일 함수를/ 써서 투루이기때문에 작동되게

(2)저장하는쿠키내용을 유저id,pw 변수값으로 받아 범위넓히기.

(3)쿠키를 24시간만 유지하고 사라지게
(4)로그인을 성공하면 로그인페이지(홈)로 이동 로그인폼부분만변화해서 있을수있도록하기 (네이버홈페이지 처럼)

그러기위해선 접속한 사용자가 로그인 한사람인지 안닌지 판단이 필요함 

(5) 밖에 나와있던 세션 변수생성을 로그인 성공한 사람에게만 줄수있도록 조취를 취해서 로그인여부 판단할수 있게 함

<!DOCTYPE html>
<?php session_start();
?>
<html>
    <head><!--로그인폼-->
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <?php
        if(isset($_COOKIE["userid"])){
            $_SESSION["userid"]=$_COOKIE["userid"];
        }
        
        if(!isset($_SESSION["userid"])){
        ?>
        <form method="post" action="login_result.php">
        <input type="text" name="ueserid" placeholder="아이디" required autofocus><!--placeholder:누르면 입력창으로 변하게-->
        <input type="password" name="password" placeholder="비밀번호" required autofocus>
        <input type="checkbox" name="chbox" value="yes">로그인 상태유지<br>
        <input type="submit" value="로그인">
        </form>
        <?php
        }else{
        ?>
        <?=$_SESSION["userid"]?>님 환영합니다.<br>
        <a href="logout.php">로그아웃</a>
        <?php
        }
        ?>

    </body>
</html>

 

로그인 처리php

<?php
session_start();//세션시작
$ueserid = $_REQUEST["ueserid"];//로그인 정보 받아오기
$password = $_REQUEST["password"];
//$chbox = $_REQUEST["chbox"];


if($ueserid=="dbwls" && $password=="12345"){//아이디패스워드 맞으면 넘기기
    if(isset($chbox)){//(1)변수안에 전달받은값이 있으면 트루 없으면 페일 반환하는 함수
//로그인유지 체크박스가 활성화되면 쿠키생성하기 
    //(2)사용자 아이디 패스워드로 쿠키를 남기도록 (수정)
    $a = setcookie("userid",$ueserid, time()+60*60*24);//(3)60초를 60번 반복하면 60분,60분을24번반복하면24시간 
    }
    
    $_SESSION["userid"]=$ueserid;//(5)로그인 성공시 세션변수생성
    header("Location:http://localhost/ch04/login_form.php");//(4)이동하라
    print "로그인";
    exit;//조건문에서 빠져나와라
}
else{//아이디패스워드 틀리면 경고창띄우기
?>
<script>alert("아이디와 비밀번호가 틀립니다.");
    history.back();
    </script>
<?php
}
?>

로그아웃처리php

<?php
session_start();
unset($_SESSION["userid"]);
unset($_SESSION["paword"]);
setcookie("userid","");
header("location:http://localhost/ch04/login_form.php");
?>

 

'php공부' 카테고리의 다른 글

회원가입 로그인 로그아웃  (0) 2023.04.20
php mysql연동오류  (0) 2023.04.19
쿠키와 세션  (0) 2023.04.18
[PHP기초]함수  (0) 2023.04.18
[php기초] 배열,2차배열  (0) 2023.04.18