찾다
백엔드 개발PHP 튜토리얼PHP 세션 세션(주제)

PHP 세션 세션(주제)

Jul 11, 2020 pm 05:55 PM
php session

php 세션 주제에는 PHP 세션 개념, 기본 기능 사용법, PHP 세션 사용 사례, PHP 세션 비디오 자습서 및 관련 선별 기사가 포함됩니다.

PHP 세션 세션(주제)

1: PHP 세션이란 무엇인가요?

공식 설명: 세션 메커니즘(Session)은 PHP에서 사용자가 지속적으로 웹 애플리케이션에 액세스할 때 관련 데이터를 유지하는 데 사용되어 고도로 맞춤화된 프로그램을 만들고 사이트의 매력을 높이는 데 도움이 됩니다.

PHP 세션이 무엇인지 이해하려면 먼저 세션 메커니즘이 무엇인지 이해해야 합니다.

세션 메커니즘

HTTP는 연결 없는 네트워크 프로토콜을 기반으로 합니다. 모든 방문은 서버에 완전히 새로운 것입니다.

방문자 등록을 기억한다면. 연결 상태를 기록하면 사용자 경험을 향상시키고 사용자 로그인, 장바구니 등과 같은 많은 개인화 기능을 완료할 수 있습니다. 실제로 서버가 사용자를 기억하는 방법은 매우 간단합니다. 멤버십 카드도 마찬가지입니다

멤버십 카드가 저장되는 곳은 귀하 본인과 가맹점 컴퓨터 두 군데가 있습니다

그러므로 네트워크상의 사용자 정보도 브라우저(클라이언트)와 두 군데에 저장됩니다. 서버

가 호출됩니다: cookie

가 서버에 저장됩니다: session

확장 지식:
php

에서 세션과 쿠키의 차이점 관련 주제:

php cookie

(그림 및 텍스트 주제)

PHP 세션 핵심 사항

    서버 측에 저장
  • 변수: $_SESSION
  • 변수 필터: filter_input(INPUT_SESSION, 키)
  • 설정 사용 전용 함수: setcookie(이름, 값, 만료 시간)
  • 이 적용되려면 두 단계를 거쳐야 합니다. 먼저 브라우저에 명령을 실행한 다음 브라우저가 쿠키 쓰기를 완료합니다.
  • 2: PHP 세션의 기본 기능 소개

1 .session_create_id

새 세션 ID 만들기

session_create_id ([ string $prefix ] ) : string

매개변수

    prefix: 접두사가 지정되면 새 세션 ID에 접두사가 붙습니다. 세션 ID에는 모든 문자가 허용되지 않습니다. a-z a-z 0-9, ,(쉼표) 및 -(빼기 기호) 범위의 문자가 허용됩니다.
  • 반환 값


현재 세션의 새로운 충돌 없는 세션 ID를 반환합니다. 활성 세션 없이 사용되면 충돌 검사가 무시됩니다.

2.session_destroy

세션의 모든 데이터를 삭제합니다.

session_destroy ( void ) : bool

반환 값

성공 시 TRUE를 반환하고, 실패 시 FALSE를 반환합니다.

3.session_id

현재 세션 ID 가져오기/설정

session_id ([ string $id ] ) : string

Parameters

    id: id 매개변수의 값이 지정된 경우 지정된 값을 세션 ID로 사용합니다. session_id() 함수는 session_start() 함수가 호출되기 전에 호출되어야 합니다. 세션 관리자마다 세션 ID에 사용할 수 있는 문자에 대한 제한 사항이 다릅니다. 예를 들어, 파일 세션 관리자는 세션 ID에 다음 문자만 허용합니다: a-z A-Z 0-9 , (쉼표) 및 - (빼기 기호)
  • 반환 값

현재 세션 ID를 반환합니다. 현재 세션이 없으면 빈 문자열("")이 반환됩니다.

4.session_name

읽기/설정 세션 이름

session_name ([ string $name ] ) : string

Parameters

    name: 쿠키 또는 URL에 사용되는 세션 이름(예: PHPSESSID). 세션 이름은 문자와 숫자만 사용할 수 있으며 가능한 한 짧고 의미 있는 이름을 사용하는 것이 좋습니다(쿠키 경고를 활성화한 사용자의 경우 이 쿠키 허용 여부를 결정하기가 더 쉽습니다). ). name 매개변수가 지정되면 현재 세션도 지정된 값을 이름으로 사용합니다.
  • 반환 값


현재 세션 이름을 반환합니다. name 매개변수가 지정된 경우 이 함수는 세션 이름을 업데이트하고 원래 세션 이름을 반환합니다.

5.session_start

새 세션 시작 또는 기존 세션 재사용

session_start ([ array $options = array() ] ) : bool

매개변수

    options: 이 매개변수는 연관 배열입니다. 제공된 경우 해당 항목은 세션 구성의 구성을 재정의합니다. 지시문. 이 배열의 키에는 세션 접두사가 포함될 필요가 없습니다.
  • 값을 반환


세션이 성공적으로 시작되면 TRUE를 반환하고, 그렇지 않으면 FALSE를 반환합니다

6.session_status

현재 세션 상태를 반환

session_status ( void ) : int

값을 반환


PHP_SESSION_DISABLED 세션이 비활성화되었습니다.

PHP_SESSION_NONE 세션이 활성화되었지만 현재 세션이 없습니다.

PHP_SESSION_ACTIVE 세션이 활성화되어 있고 현재 세션이 존재합니다.

7.session_unset

모든 세션 변수 해제

session_unset ( void ) : void

3: 사용 사례

1. 기본 세션 작업


PHP 세션의 일반적인 기본 작업

<?php
//开启session会话
session_start();


//设置session
$_SESSION[&#39;username&#39;] = &#39;adminuser&#39;;


//获取session
$username = $_SESSION[&#39;username&#39;];


//删除session
unset($_SESSION[&#39;username&#39;]);


//清空session
session_unset();
//或
$_SESSION = [];


//销毁session
session_destroy();

2. 쿠키 비활성화 솔루션 찾아보기

cookie和session的区别在于cookie是保存在客户端的,而session是存储在服务端中。它们都有生存时间的设置,session比cookie更安全。

当服务端与客户端通信后会生成会话后,会建立一个和浏览器的唯一会话PHPSESSID。这个id会在服务端保存,也会用cookie形式保存在客户端中。

 禁用cookie后session不能把唯一id通过cookie方式在客户端中进行存储,这时候php会在浏览器地址栏中以url明文get的方式来传递phpsessionid,来进行客户端和服务端的唯一识别通信。

这样一来程序的安全性大大降低了。所有在php.ini默认是关闭通过地址栏传递phpsessionid的,如果没开启就不能使用session,所以需要php.ini配置支持才行。

session.use_only_cookies = 1; // 开启仅使用cookies存放会话id           
session.use_trans_sid = 1;     // 允许Sessionid通过URL明文传输,默认为0关闭

或者使用代码来实现

/**
 * 兼容 php7.1 以下版本
 */
if (!function_exists(&#39;session_create_id&#39;)) {
    function session_create_id()
    {
        return uniqid();
    }
}

//获取SESSION_ID
$session_id = isset($_GET[&#39;SESSION_ID&#39;]) ? $_GET[&#39;SESSION_ID&#39;] : session_create_id();

//设置 SESSION_ID
session_id($session_id);

//开启session
session_start();

$_SESSION[&#39;user&#39;] = &#39;user01&#39;;

//echo $_SESSION[&#39;user&#39;];

echo $session_id;

3、浏览计数器

利用 session 机制可以实现 记录用户的访问页面的次数,代码如下:

<?php
//开启session
session_start();

//判断是否设置浏览数
if (isset($_SESSION[&#39;view_num&#39;])) {
    //如果设置 浏览数加 1
    $_SESSION[&#39;view_num&#39;] = $_SESSION[&#39;view_num&#39;] + 1;
} else {
    //如果未设置 设置浏览数为 1
    $_SESSION[&#39;view_num&#39;] = 1;
}

die(&#39;当前浏览数为:&#39; . $_SESSION[&#39;view_num&#39;]);
?>

4、使用 session 实现登录功能

对于 Cookie 来说,假设我们要验证用户是否登陆,就必须在 Cookie 中保存用户名和密码(可能是 md5 加密后字符串),并在每次请求页面的时候进行验证。

如果用户名和密码存储在数据库,每次都要执行一次数据库查询,给数据库造成多余的负担。因为我们并不能 只做一次验证。为什么呢?

因为客户端 Cookie 中的信息是有可能被修改的。假如你存储 $admin 变量来表示用户是否登陆,$admin 为 true 的时候表示登陆,为 false 的时候表示未登录,在第一次通过验证后将 $admin 等于 true 存储在 Cookie,下次就不用验证了,这样对么?错了,假如有人伪造一个值为 true 的 $admin 变量那不是就立即取的了管理权限么?非常的不安全。

而 Session 就不同了,Session 是存储在服务器端的,远程用户没办法修改 Session 文件的内容,因此我们可以单纯存储一个 $admin 变量来判断是否登陆,首次验证通过后设置 $admin 值为 true,以后判断该值是否为 true,假如不是,转入登陆界面,这样就可以减少很多数据库操作了。

而且可以减少每次为了验证 Cookie 而传递密码的不安全性了(Session 验证只需要传递一次,假如你没有使用 SSL 安全协议的话)。即使密码进行了 md5 加密,也是很容易被截获的。

当然使用 Session 还有很多优点,比如控制容易,可以按照用户自定义存储等(存储于数据库)。

下面是一个简单的用户登录示例:

<?php
session_start();

//判断是否登录
if (isset($_SESSION[&#39;login_user&#39;])) {
    die(&#39;已登录!当前登录用户为:&#39; . $_SESSION[&#39;login_user&#39;]);
}

//判断是否为POST请求
if ($_SERVER[&#39;REQUEST_METHOD&#39;] === &#39;POST&#39;) {

    //检查是否输入用户名
    if (!isset($_POST[&#39;username&#39;]) || empty($_POST[&#39;username&#39;])) {
        die(&#39;请输入用户名!&#39;);
    }

    //检查是否输入密码
    if (!isset($_POST[&#39;password&#39;]) || empty($_POST[&#39;password&#39;])) {
        die(&#39;请输入密码!&#39;);
    }

    //模拟数据
    $data = [&#39;username&#39; => &#39;user01&#39;, &#39;password&#39; => md5(&#39;123456&#39;)];

    //检查用户名是否正确
    if ($_POST[&#39;username&#39;] === $data[&#39;username&#39;]) {
        //检查密码是否正确
        if (md5($_POST[&#39;password&#39;]) === $data[&#39;password&#39;]) {
            //保存登录状态
            $_SESSION[&#39;login_user&#39;] = $_POST[&#39;username&#39;];
            die(&#39;恭喜你登录成功!&#39;);
        }
    }

    //用户名或密码不正确
    die(&#39;用户名或密码不正确!&#39;);
}
?>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="=device-width, initial-scale=1.0">
    <title>用户登录</title>
</head>
<body>
<form action="./session02.php" method="post">
    <input type="text" name="username" placeholder="请输入用户名!">
    <input type="password" name="password" placeholder="请输入密码!">
    <button type="submit">登录</button>
</form>
</body>
</html>

四:PHP Session 视频教程

PHP 세션 세션(주제)

1.PHP中session如何存储及删除变量的

2.PHP如何用session来判断用户是否登录

3.PHP如何用session来记录用户登陆信息

4.php视频教程之PHP会话管理

5.PHP视频教程之会话控制session的工作机制

6.PHP高级视频教程之和session存储相关的一些面试题

7.ThinkPHP5基础讲解视频教程之Session的使用

8.ThinkPHP5基础讲解视频教程之Session的使用

9.PHP经典实战视频教程之SESSION示例(购物车)

10.会话管理视频教程

11.Blog项目实战之session原理

五:PHP Session 精选技术文章

1.PHP7中创建session和销毁session的方法

2.利用php设置一个严格控制过期时间的session

3.PHP에서 세션을 삭제하는 세 가지 방법

4.PHP에서 웹 클러스터 세션을 동기화하는 단계에 대한 자세한 설명

5.Session을 통해 사용자 작업 권한을 판단하는 예에 대한 자세한 설명

6.Redis는 PHP 세션 방법을 저장합니다

7.Laravel은 Redis를 사용하여 세션을 공유합니다(자세한 코드 설명)

8.ThinkPHP6.0: 세션 및 쿠키 메커니즘의 변경 사항

9. PHP

10.php에서 세션 ID 구현 원리를 분석하면 회원 로그인 등록 페이지에 html과 Session 및 Cookie

11.php가 있음을 인식하고 session_id

12.In을 통해 세션 내용을 복원합니다. PHP.ini의 기본 세션 구성에 대한 심층 소개

13. WeChat 애플릿에서 session_key 및 openid를 얻는 사례(그림)

14.세션 공유: PHP 및 Redis 클러스터에서 세션 공유를 구현하는 방법

15.세션 공유를 구현하는 redis 방법 소개

16. tp5는 로그인 및 세션 저장을 구현한 후 다른 역할 권한을 가진 페이지로 점프합니다

17.PHP 세션 이해 운영 메커니즘

18.PHP가 SESSION 정보를 얻을 수 없는 일반적인 상황에 대한 해결책

19.PHP + 반복 양식 제출을 방지하기 위한 Session 단계에 대한 자세한 설명

20.Session을 유지하는 PHP 방법 만료되는

21.SESSION 응답 속도를 향상시키는 PHP 방법

22.MemCache 캐싱 및 세션(지식 요약)

23.프런트 엔드에서 세션 정보를 얻는 여러 가지 방법 비교

24.Laravel의 세션 처리 방법에 대한 자세한 설명

위 내용은 PHP 세션 세션(주제)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
PHP와 Python : 다른 패러다임이 설명되었습니다PHP와 Python : 다른 패러다임이 설명되었습니다Apr 18, 2025 am 12:26 AM

PHP는 주로 절차 적 프로그래밍이지만 객체 지향 프로그래밍 (OOP)도 지원합니다. Python은 OOP, 기능 및 절차 프로그래밍을 포함한 다양한 패러다임을 지원합니다. PHP는 웹 개발에 적합하며 Python은 데이터 분석 및 기계 학습과 같은 다양한 응용 프로그램에 적합합니다.

PHP와 Python : 그들의 역사에 깊은 다이빙PHP와 Python : 그들의 역사에 깊은 다이빙Apr 18, 2025 am 12:25 AM

PHP는 1994 년에 시작되었으며 Rasmuslerdorf에 의해 개발되었습니다. 원래 웹 사이트 방문자를 추적하는 데 사용되었으며 점차 서버 측 스크립팅 언어로 진화했으며 웹 개발에 널리 사용되었습니다. Python은 1980 년대 후반 Guidovan Rossum에 의해 개발되었으며 1991 년에 처음 출시되었습니다. 코드 가독성과 단순성을 강조하며 과학 컴퓨팅, 데이터 분석 및 기타 분야에 적합합니다.

PHP와 Python 중에서 선택 : 가이드PHP와 Python 중에서 선택 : 가이드Apr 18, 2025 am 12:24 AM

PHP는 웹 개발 및 빠른 프로토 타이핑에 적합하며 Python은 데이터 과학 및 기계 학습에 적합합니다. 1.PHP는 간단한 구문과 함께 동적 웹 개발에 사용되며 빠른 개발에 적합합니다. 2. Python은 간결한 구문을 가지고 있으며 여러 분야에 적합하며 강력한 라이브러리 생태계가 있습니다.

PHP 및 프레임 워크 : 언어 현대화PHP 및 프레임 워크 : 언어 현대화Apr 18, 2025 am 12:14 AM

PHP는 현대화 프로세스에서 많은 웹 사이트 및 응용 프로그램을 지원하고 프레임 워크를 통해 개발 요구에 적응하기 때문에 여전히 중요합니다. 1.PHP7은 성능을 향상시키고 새로운 기능을 소개합니다. 2. Laravel, Symfony 및 Codeigniter와 같은 현대 프레임 워크는 개발을 단순화하고 코드 품질을 향상시킵니다. 3. 성능 최적화 및 모범 사례는 응용 프로그램 효율성을 더욱 향상시킵니다.

PHP의 영향 : 웹 개발 및 그 이상PHP의 영향 : 웹 개발 및 그 이상Apr 18, 2025 am 12:10 AM

phphassignificallyimpactedwebdevelopmentandextendsbeyondit

스칼라 유형, 반환 유형, 노조 유형 및 무효 유형을 포함한 PHP 유형의 힌트 작업은 어떻게 작동합니까?스칼라 유형, 반환 유형, 노조 유형 및 무효 유형을 포함한 PHP 유형의 힌트 작업은 어떻게 작동합니까?Apr 17, 2025 am 12:25 AM

PHP 유형은 코드 품질과 가독성을 향상시키기위한 프롬프트입니다. 1) 스칼라 유형 팁 : PHP7.0이므로 int, float 등과 같은 기능 매개 변수에 기본 데이터 유형을 지정할 수 있습니다. 2) 반환 유형 프롬프트 : 기능 반환 값 유형의 일관성을 확인하십시오. 3) Union 유형 프롬프트 : PHP8.0이므로 기능 매개 변수 또는 반환 값에 여러 유형을 지정할 수 있습니다. 4) Nullable 유형 프롬프트 : NULL 값을 포함하고 널 값을 반환 할 수있는 기능을 포함 할 수 있습니다.

PHP는 객체 클로닝 (클론 키워드) 및 __clone 마법 방법을 어떻게 처리합니까?PHP는 객체 클로닝 (클론 키워드) 및 __clone 마법 방법을 어떻게 처리합니까?Apr 17, 2025 am 12:24 AM

PHP에서는 클론 키워드를 사용하여 객체 사본을 만들고 \ _ \ _ Clone Magic 메소드를 통해 클로닝 동작을 사용자 정의하십시오. 1. 복제 키워드를 사용하여 얕은 사본을 만들어 객체의 속성을 복제하지만 객체의 속성은 아닙니다. 2. \ _ \ _ 클론 방법은 얕은 복사 문제를 피하기 위해 중첩 된 물체를 깊이 복사 할 수 있습니다. 3. 복제의 순환 참조 및 성능 문제를 피하고 클로닝 작업을 최적화하여 효율성을 향상시키기 위해주의를 기울이십시오.

PHP vs. Python : 사용 사례 및 응용 프로그램PHP vs. Python : 사용 사례 및 응용 프로그램Apr 17, 2025 am 12:23 AM

PHP는 웹 개발 및 컨텐츠 관리 시스템에 적합하며 Python은 데이터 과학, 기계 학습 및 자동화 스크립트에 적합합니다. 1.PHP는 빠르고 확장 가능한 웹 사이트 및 응용 프로그램을 구축하는 데 잘 작동하며 WordPress와 같은 CMS에서 일반적으로 사용됩니다. 2. Python은 Numpy 및 Tensorflow와 같은 풍부한 라이브러리를 통해 데이터 과학 및 기계 학습 분야에서 뛰어난 공연을했습니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기