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_START
은 TRUE
입니다. 즉, 기본적으로 세션이 자동으로 열립니다. 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