관리 메뉴

nkdk의 세상

php session을 활용한 회원 입력 본문

My Programing/PHP

php session을 활용한 회원 입력

nkdk 2009. 7. 24. 10:55

이번에는 session을 배워 볼려고 하는데.. session이라는 것이 무엇인가 하면 자신이 띄운 웹브라우저가 유지되고 있는 상태에 남아있는 일종의 기억 공간이라고 보면된다. 물론 웹브라우저가 종료되면 session도 날라가게 된다. session을 이야기 하면서 cokiee라고 쿠키랑 비교를 하게 되는데.. 쿠키라고 하는 것은 사용자 컴퓨터의 임시에 쿠키를 넣어놔서 나중에 접속했을 때 자동으로 인식하게 하는 기능이다. 팝업 창 일주일간 안 보이기라던지, 아이디 패스워드 기억이라던지에 쿠키를 사용하기도 한다. 쿠키의 경우 기억용량이 작기 때문에 많은 것은 기억시키지 못하고 또한 사용자 컴퓨터에 보관되어지기 때문에 해킹의 대상이 될수도 있다. 중요한 정보인 경우에는 코딩상에서 쿠키를 사용하지 않는 것이 좋겠다. 물론 코딩 퍼포먼스적으로는 쿠키가 편하긴 하다. 일단 세션에 대해서 배워볼려고 하는것이니 보도록 하자.

일단 구상화면은 4개다
1. 입력화면(sendPage_session.html)
2. 세션 초기화 화면(recev_session.php)
3. 세션 저장 화면(recev_session2.php)
4. 세션 리스트 보기 화면(recev_session3.php)

자 소스로 달리겠다 ^_^

sendPage_session.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>session Input List</title>
</head>
    <body>
    <form action="recev_session2.php" method="GET">
        gender:<br>
        <input type="radio" name="gender" value=0>male
        <input type="radio" name="gender" value=1>female<br><br>
       
        hobby:<br>
        <input type="checkbox" name="movies" value=1>movies
        <input type="checkbox" name="music" value=1>music
        <input type="checkbox" name="books" value=1>books
        <input type="checkbox" name="sports" value=1>sports<br><br>
       
        textAreaInput:<br>
        <textarea name="comment" rows="4" cols="40"></textarea><br><br>
       
        <input type="submit" value="send" />
        <input type="reset" value="reset" />
    </form>
    </body>
</html>

recev_session.php
<?php
    session_start();   
?>
<html>
<head><title>Initialize Session</title></head>
<body>
<?php
    $_SESSION = array(total_cnt => 0, male => 0, female => 0, movies => 0, music => 0, books => 0, sports => 0, comment => array(""));
?>
Initialize complete<a href="sendPage_session.html">return input menu</a>
</body>
</html>

recev_session2.php
<?php   
    session_start();   
?>
<html>
<head><title>Add Session</title></head>
<body>
<?php
    if ($_GET['gender'] == 0) ++$_SESSION['male'];
    elseif ($_GET['gender'] == 1) ++$_SESSION['female'];

    if($_GET['movies']) ++$_SESSION['movies'];
    if($_GET['music']) ++$_SESSION['music'];
    if($_GET['books']) ++$_SESSION['books'];
    if($_GET['sports']) ++$_SESSION['sports'];
   
    $_SESSION['comment'][] = $_GET['comment'];
    ++$_SESSION['total_cnt'];
?>
<a href="sendPage_session.html">return input menu</a><br>
<a href="recev_session3.php">view Session info</a><br>
</body>
</html>

recev_session3.php
<?php
    session_start();   
?>
<html>
<head><title>View Session Info</title></head>
<body>
<?php
    echo "Session List Count's {$_SESSION['total_cnt']}peoples<br>";
    if($_SESSION['total_cnt']) {
        $male_rate = (int)($_SESSION['male'] / $_SESSION['total_cnt'] * 100);
        $female_rate = (int)($_SESSION['female'] / $_SESSION['total_cnt'] * 100);
    }
    else {
        $male_rate = 0;
        $female_rate = 0;
    }
   
    echo "man :{$_SESSION['male']}people $male_rate % <br>";
    echo "girl:{$_SESSION['female']}people $female_rate % <br><br>";
    echo "hobby: movie -> {$_SESSION['movies']}people, music -> {$_SESSION['music']}people,".
    "book -> {$_SESSION['books']}people, sports -> {$_SESSION['sports']}people<br><br>";
    echo "text input:<br>";
    foreach($_SESSION['comment'] as $comment) {
        echo $comment."<br>";
    }
?>
<a href="recev_session.php">Initialize Session</a><br>
<a href="sendPage_session.html">input Session</a><br>
</body>
</html>

이 정도가 되겠다.
session_start()라는 것을 주목해 볼 필요가 있겠다.

다음과에서는 위와 같이 조사한 것을 저장하는 방법을 알아보도록 하겠다.