> 백엔드 개발 > PHP 튜토리얼 > Tp 프레임워크가 세션을 얻을 수 없습니다. 답변을 주십시오.

Tp 프레임워크가 세션을 얻을 수 없습니다. 답변을 주십시오.

WBOY
풀어 주다: 2016-08-04 09:20:42
원래의
2975명이 탐색했습니다.

Tp 3.2.3 새 버전을 사용하고 있습니다. 동일한 컨트롤러에 여러 메서드가 있습니다. 메서드 1에서 세션을 작성했습니다. 메서드 2에서 세션을 읽을 수 없는 이유는 무엇입니까? 설명해주세요....

코드는 매우 간단합니다. Controller를 상속하는 컨트롤러를 작성하면 됩니다. 그런 다음 두 가지 방법이 작성되어 있으며 첫 번째 방법은 세션을 작성합니다. 두 번째 방법은 세션을 읽습니다. 구문은 session("kkk",999)입니다. 다른 하나는 session("kkk")을 직접 에코하는 것입니다. 결과적으로 세션을 읽을 수 없습니다.

답글 내용:

Tp 3.2.3 새 버전을 사용하고 있습니다. 동일한 컨트롤러에 여러 메서드가 있습니다. 메서드 1에서 세션을 작성했습니다. 메서드 2에서 세션을 읽을 수 없는 이유는 무엇입니까? 설명해주세요....

코드는 매우 간단합니다. Controller를 상속하는 컨트롤러를 작성하면 됩니다. 그런 다음 두 가지 방법이 작성되어 있으며 첫 번째 방법은 세션을 작성합니다. 두 번째 방법은 세션을 읽습니다. 구문은 session("kkk",999)입니다. 다른 하나는 session("kkk")을 직접 에코하는 것입니다. 결과적으로 세션을 읽을 수 없습니다.

ThinkPHP 애플리케이션 초기화 중 ThinkPHP\Library\Think\App.class.php 클래스에서 현재 실행 환경이 cli이 아니면 session_start이 구성 파일

에서 자동으로 등록됩니다.

기본 구성 파일 ThinkPHP\Conf\convention.php에 설정된 SESSION_AUTO_STARTTRUE입니다. 즉, 기본적으로 세션이 자동으로 열립니다. thinkphp로드 중입니다. 구성 파일 사용자 정의 항목은 기본 항목을 덮어씁니다.

기본 사용자 정의 프로필Application\Common\Conf\config.php, SESSION_AUTO_START이 false 또는 0으로 설정되어 있는지 확인하세요.

구성 파일을 수정하지 않으려면 메서드를 시작하기 전에 session_start만 호출하면 됩니다

<code class="php">
<?php
namespace Home\Controller;
use Think\Controller;

class IndexController extends Controller {

    public function index(){
        $this->show('.........');
    }

    public function test()
    {
        //若配置文件SESSION_AUTO_START为false, 则调用session方法时都学要手动开启session
        session_start();

        session('xxxxx', 'wodelaojia');
    }


    public function test2()
    {
        session_start();
        
        echo session('xxxxx');
    }
}</code>
로그인 후 복사

SESSION_AUTO_START TRUE으로 구성하거나 session session_start

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