은 이미지 업로드 플러그인 uploadify를 사용했습니다. IE 및 Firefox에서 업로드할 때 발생하는 302 오류로 인해 현재 세션 이름 session_name()
을 프런트엔드의 백엔드에 전달하여 다시 세션을 수립했는데, 아래와 같이 백그라운드에서 session_name()
의 매개변수를 받을 수 있는데, 세션을 다시 수립할 때 실패하는 경우 어떻게 해결하나요?
프런트 데스크:
<code>//这是uploadify插件向后端传送数据的参数 'formData' : { 'timestamp' : '<?php echo $timestamp;?>', 'token' : '<?php echo md5('unique_salt' . $timestamp);?>', '<?php echo session_name();?>' : '<?php echo session_id();?>', //上面的session参数渲染后是这样:'PHPSESSID':'', },</code>
백엔드:
<code>//这是一个公共的控制器的初始化方法 里面验证登陆 function __construct() { parent::__construct(); $session_name = session_name(); $post_session_name = $this->input->post($session_name); if (isset($post_session_name)) { //测试过 可以进入这里 session_id($post_session_name); //但是在这个地方好想设置会话失败 session_start(); } if ( !$this->session->valid_user() ){ //因为设置会话失败 这里通不过 前端返回302 redirect( module_url( 'common/login' ) ); } } </code>
은 이미지 업로드 플러그인 uploadify를 사용했습니다. IE 및 Firefox에서 업로드할 때 발생하는 302 오류로 인해 현재 세션 이름 session_name()
을 프런트엔드의 백엔드에 전달하여 다시 세션을 수립했는데, 아래와 같이 백그라운드에서 session_name()
의 매개변수를 받을 수 있는데, 세션을 다시 수립할 때 실패하는 경우 어떻게 해결하나요?
프런트 데스크:
<code>//这是uploadify插件向后端传送数据的参数 'formData' : { 'timestamp' : '<?php echo $timestamp;?>', 'token' : '<?php echo md5('unique_salt' . $timestamp);?>', '<?php echo session_name();?>' : '<?php echo session_id();?>', //上面的session参数渲染后是这样:'PHPSESSID':'', },</code>
백엔드:
<code>//这是一个公共的控制器的初始化方法 里面验证登陆 function __construct() { parent::__construct(); $session_name = session_name(); $post_session_name = $this->input->post($session_name); if (isset($post_session_name)) { //测试过 可以进入这里 session_id($post_session_name); //但是在这个地方好想设置会话失败 session_start(); } if ( !$this->session->valid_user() ){ //因为设置会话失败 这里通不过 前端返回302 redirect( module_url( 'common/login' ) ); } } </code>
로그를 확인하여 오류 메시지가 있는지 확인하세요. session_id
세션이 시작되기 전에 설정해야 합니다. 이 컨트롤러의 __construct() 호출 전에 세션이 다른 곳에서 열렸나요? session_id 줄 앞에 session_abort()
를 추가해 보세요.
기본값은 쿠키를 통해 session_id를 저장하는 것입니다. 쿠키가 비활성화되어 있거나 삭제되어 있는지 확인하세요