PHP에서 세션을 설정, 획득 및 삭제하는 방법은 무엇입니까?

WBOY
풀어 주다: 2023-04-10 18:30:02
원래의
6069명이 탐색했습니다.

이전 글에서는 "PHP에서 쿠키를 생성하고 읽고 삭제하는 방법은 무엇인가요?"를 가져왔습니다. 》에서는 PHP에서 쿠키를 생성하고 읽고 삭제하는 방법을 자세히 소개합니다. 이 기사에서는 PHP에서 세션을 설정하고 가져오고 삭제하는 방법을 살펴보겠습니다. 모두에게 도움이 되기를 바랍니다!

PHP에서 세션을 설정, 획득 및 삭제하는 방법은 무엇입니까?

이전 글에서는 클라이언트가 사용자 데이터를 저장하는 데 사용하는 쿠키에 대해 소개했습니다. 이번 글에서는 매우 중요한 위치를 차지하는 세션에서 세션은 서버 측 메커니즘이며 정보를 저장하는 데에도 사용됩니다. 클라이언트에 저장된 쿠키와 비교할 때 사용자는 서버에 저장된 세션을 비활성화할 수 없습니다. , 매번 모든 쿠키 값을 반환할 필요는 없으며, ID만 반환하면 됩니다. 이 ID는 서버에 처음 접속할 때 생성되며 고유합니다. <br><code>cookie,本篇我们来看一下在PHP中占有非常重要地位的session,session是一种服务器端的机制,也是用来保存信息的,相比于保存在客户端的cookie,保存在服务器端的session用户是无法禁用的,同一个客户端每次和服务端交互时,不需要每次都传回所有的cookie值,只需要传回一个ID就可以了,这个ID是第一次访问服务器的时候生成的,并且是唯一的。

那接下来就来看一看到底什么是session,应该怎样去设置、获取和删除session吧

什么是session

session中文意思是会话,它用来储存使用者的相关资料的,这与cookie类似,例如用户名、个性化设置等等,与cookie不同的是,cookie是将资料保存在客户端的电脑中,用户可以禁用;而session是将数据保存在服务器系统下。网页是无状态的程序连接,无法记录用户的状态,因此通过session来记录用户的相关信息就显得尤为重要。

当开启一个session是,PHP会随机的创建一个sessionID,每个用户的sessionID是唯一的。这个sessionID在客户端与服务器端都会有保存的位置,保存在客户端会使用cookie的指定目录里;在服务器端回忆文本的形式保存到指定的session目录里。

与cookie相比,session是有很多优势的:

因为session的数据不会在客户端与服务器端来回的反复传递,所以通常情况下session还是更安全的;session能够存储的信息比cookie要多很多;用户可以禁用cookie,但是有方法能够是session正常工作。

了解了什么是session后,接下来看一看应该怎样去开启session。

开启session

不同于cookie,使用cookie可以直接创建,而在使用session之前必须先启动,目的是为了让PHP中的核心程序能够将session相关的内建环境预先加载到内存中。

在PHP中通过session_start()函数可以实现开启session的目的,函数session_start()的语法格式如下:

session_start ([array $options = array()])
로그인 후 복사

其中需要注意的是:

$options是一个可选函数,是一个关联数组,并且这个数组中的键不需要包含session.前缀。

示例如下:

<?php
    session_start([
        &#39;cookie_lifetime&#39; => 60*60*24,  // 设置 cookie 的有效时间为 1 天
    ]);
    echo &#39;Session ID 为:&#39;.$_COOKIE[&#39;PHPSESSID&#39;];
?>
로그인 후 복사

输出结果:

PHP에서 세션을 설정, 획득 및 삭제하는 방법은 무엇입니까?

需要注意的是:调用 session_start() 函数会生成一个唯一的 Session ID,并保存在浏览器的 Cookie 中,默认名称为“PHPSESSID”。同时,在本地目录中生成一个以“sess_”加上 Session ID 组成的 Session 文件,用来存储 Session 中的数据,输出结果:

PHP에서 세션을 설정, 획득 및 삭제하는 방법은 무엇입니까?

通过上述实例,已经了解到了应该怎样去开启session,那接下来看一下应该怎样去设置和获取session

设置和获取session

在上文中,启动了session之后,想要使用session变量,还需要经过设置和获取session中的数据,想要完成这些还需要通过$_SESSION数组来完成。使用$_SESSION之前必须要先试用session_start()函数来开启session才可以。

$_SESSION

그럼 세션이 무엇인지, 어떻게 세션을 설정하고 가져오고 삭제하는지 살펴보겠습니다

세션이 무엇인지

PHP에서 세션을 설정, 획득 및 삭제하는 방법은 무엇입니까?

세션이란 중국어 의미입니다. 세션은 사용자 이름, 개인 설정 등 쿠키와 유사합니다. 쿠키와 달리 쿠키는 클라이언트의 컴퓨터에 정보를 저장하며 사용자가 비활성화할 수 있습니다. 서버 시스템의 데이터. 웹 페이지는 상태가 없는 프로그램 연결이므로 사용자의 상태를 기록할 수 없으므로 세션을 통해 사용자의 관련 정보를 기록하는 것이 특히 중요합니다.

세션이 열리면 PHP는 무작위로 sessionID를 생성하며 각 사용자의 sessionID는 고유합니다. 이 세션 ID는 클라이언트와 서버 모두에 저장되며, 서버의 클라이언트에서 쿠키가 사용될 지정된 디렉터리에 저장되며, 지정된 세션 디렉터리에 호출된 텍스트 형식으로 저장됩니다.

쿠키에 비해 세션에는 많은 장점이 있습니다.
세션 데이터가 클라이언트와 서버 간에 반복적으로 전달되지 않기 때문에 세션은 일반적으로 세션을 더 안전하게 저장할 수 있습니다. 쿠키, 사용자는 쿠키를 비활성화할 수 있지만 세션이 제대로 작동하도록 하는 방법이 있습니다. 세션이 무엇인지 이해한 후, 세션을 여는 방법을 살펴보겠습니다.

🎜🎜🎜세션 열기🎜🎜🎜🎜쿠키와는 달리 쿠키는 직접 생성할 수 있지만 세션을 사용하기 전에 시작해야 합니다. 목적은 PHP의 핵심 프로그램이 세션을 전송할 수 있도록 하는 것입니다. -관련 정보 내장 환경은 메모리에 미리 로드됩니다.
🎜🎜PHP에서 세션을 여는 목적은 session_start() 함수를 통해 달성할 수 있습니다. session_start() 함수의 구문 형식은 다음과 같습니다. 🎜
$_SESSION[名称] = 值;
로그인 후 복사
🎜필요한 것. 주의할 점은 다음과 같습니다.
🎜🎜$options는 선택적 함수이자 연관 배열이며 이 배열의 키에는 세션 접두사가 포함될 필요가 없습니다.
🎜🎜예제는 다음과 같습니다. 🎜
<?php
    session_start();
    $str = &#39;好好学习&#39;;
    $arr = [&#39;Session&#39;,&#39;$_SESSION&#39;];
    $_SESSION[&#39;study&#39;]  = $str;
    $_SESSION[&#39;study1&#39;]   = &#39;天天向上&#39;;
    $_SESSION[&#39;title&#39;] = $arr;
    foreach ($_SESSION as $key => $value) {
        if(is_array($value)){
            echo $key.&#39;:&#39;;
            print_r($value);
        }else{
            echo $key.&#39; = &#39;.$value.&#39;<br>&#39;;
        }
    }
?>
로그인 후 복사
🎜출력 결과:
🎜🎜PHP에서 세션을 설정, 획득 및 삭제하는 방법은 무엇입니까?🎜🎜 session_start() 함수를 호출하면 고유한 세션 ID가 생성되어 브라우저의 쿠키, 기본 이름은 "PHPSESSID"입니다. 동시에 "sess_"와 세션 ID로 구성된 세션 파일이 로컬 디렉터리에 생성되어 세션에 데이터를 저장합니다. 🎜🎜PHP에서 세션을 설정, 획득 및 삭제하는 방법은 무엇입니까?🎜🎜위의 예시를 통해 세션을 여는 방법을 알아보았으니, 다음에는 세션 설정 및 가져오기🎜🎜🎜🎜 세션 설정 및 가져오기🎜🎜🎜🎜위에서 세션을 시작한 후 세션을 사용하려는 경우 변수를 사용하려면 세션에서 데이터를 설정하고 가져와야 하며 $_SESSION 배열을 통해 이를 완료해야 합니다. $_SESSION을 사용하기 전에 먼저 session_start() 함수를 사용하여 세션을 열어야 합니다. 🎜🎜$_SESSION은 연관 배열로, 일반 연관 배열 키-값 쌍과 동일한 의미를 갖습니다. 세션 설정을 위한 구문 형식은 다음과 같습니다. 🎜
unset(mixed $var [, mixed $...])
로그인 후 복사
로그인 후 복사
🎜예제는 다음과 같습니다. 🎜
<?php
    session_start();
    echo &#39;<pre class="brush:php;toolbar:false">&#39;;
    $str = &#39;好好学习&#39;;
    $arr = [&#39;删除 Session&#39;,&#39;$_SESSION&#39;];
    $_SESSION[&#39;study&#39;]  = $str;
    $_SESSION[&#39;study1&#39;]   = &#39;天天向上&#39;;
    $_SESSION[&#39;title&#39;] = $arr;
    echo &#39;定义一个 Session,如下所示:<br>&#39;;
    print_r($_SESSION);
    echo &#39;删除 Session 中名为 title 的元素:<br>&#39;;
    unset($_SESSION[&#39;title&#39;]);
    print_r($_SESSION);
?>
로그인 후 복사
로그인 후 복사
🎜출력 결과: 🎜🎜🎜🎜🎜실행 후 주의할 점: 이러한 변수 또는 배열은 $_SESSION에 저장되며 save to 서버 측 "sess_"와 Session ID로 명명된 파일 중, 이 파일의 위치는 php.ini 구성 파일을 수정하거나 session.save_path를 이용하여 설정할 수 있습니다. 🎜🎜세션 열기, 설정, 획득 방법을 이미 배웠습니다. 다음으로 세션 삭제 방법을 살펴보겠습니다. 🎜🎜🎜🎜단일 세션 삭제🎜🎜🎜

删除单个session元素需要通过unset()函数,该函数可以释放指定的变量,相当于直接注销掉数组中的元素,他的语法格式如下:

unset(mixed $var [, mixed $...])
로그인 후 복사
로그인 후 복사

其中需要注意的是:

$var 为要释放的变量,unset() 函数可以接收多个参数,参数之间使用,分隔。

实例如下:

<?php
    session_start();
    echo &#39;<pre class="brush:php;toolbar:false">&#39;;
    $str = &#39;好好学习&#39;;
    $arr = [&#39;删除 Session&#39;,&#39;$_SESSION&#39;];
    $_SESSION[&#39;study&#39;]  = $str;
    $_SESSION[&#39;study1&#39;]   = &#39;天天向上&#39;;
    $_SESSION[&#39;title&#39;] = $arr;
    echo &#39;定义一个 Session,如下所示:<br>&#39;;
    print_r($_SESSION);
    echo &#39;删除 Session 中名为 title 的元素:<br>&#39;;
    unset($_SESSION[&#39;title&#39;]);
    print_r($_SESSION);
?>
로그인 후 복사
로그인 후 복사

输出结果:

PHP에서 세션을 설정, 획득 및 삭제하는 방법은 무엇입니까?

如此便通过unset()函数完成了删除session单个元素了。

删除session多个元素

如果想要一次性删除多个 Session 元素,即一次注销所有的会话变量,可以通过将一个空的数组赋值给 $_SESSION 来实现

实例如下:

<?php
    session_start();
    echo &#39;<pre class="brush:php;toolbar:false">&#39;;
    $str = &#39;好好学习&#39;;
    $arr = [&#39;删除 Session&#39;,&#39;$_SESSION&#39;];
    $_SESSION[&#39;study&#39;]  = $str;
    $_SESSION[&#39;study1&#39;]   = &#39;天天向上&#39;;
    $_SESSION[&#39;title&#39;] = $arr;
    echo &#39;定义一个 Session,如下所示:<br>&#39;;
    print_r($_SESSION);
    echo &#39;删除 Session 中名为 title 的元素:<br>&#39;;
    $_SESSION = array();
    print_r($_SESSION);
?>
로그인 후 복사

通过将一个空的数组赋值给 $_SESSION 输出结果:

PHP에서 세션을 설정, 획득 및 삭제하는 방법은 무엇입니까?

还有一种方法就是通过session_unset() 函数来释放session中的所有元素,实例如下:

<?php
    session_start();
    echo &#39;<pre class="brush:php;toolbar:false">&#39;;
    $str = &#39;好好学习&#39;;
    $arr = [&#39;删除 Session&#39;,&#39;$_SESSION&#39;];
    $_SESSION[&#39;study&#39;]  = $str;
    $_SESSION[&#39;study1&#39;]   = &#39;天天向上&#39;;
    $_SESSION[&#39;title&#39;] = $arr;
    echo &#39;定义一个 Session,如下所示:<br>&#39;;
    print_r($_SESSION);
    echo &#39;删除 Session 中名为 title 的元素:<br>&#39;;
    session_unset();
    print_r($_SESSION);
?>
로그인 후 복사

输出结果与上述实例的结果相同,由此我们便通过两种方法可以删除session多个元素了。

大家如果感兴趣的话,可以点击《PHP视频教程》进行更多关于PHP知识的学习。

위 내용은 PHP에서 세션을 설정, 획득 및 삭제하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!