>백엔드 개발 >PHP 튜토리얼 >PHP5.4 이상 버전으로 변경한 후 빈 Dedecms 백그라운드 로그인 문제를 해결하는 방법_php 팁

PHP5.4 이상 버전으로 변경한 후 빈 Dedecms 백그라운드 로그인 문제를 해결하는 방법_php 팁

WBOY
WBOY원래의
2016-05-16 20:06:041159검색

PHP 버전을 5.2.14에서 5.4.15로 업그레이드했는데, dedems 배경이 공백으로 열리더군요. 각종 권한과 파일을 확인해 보았는데 문제가 없었습니다. PHP 버전 함수에서는 session_register를 사용하여 세션 변수를 등록하지만 이 함수는 php5.4 이상에서 제거되었습니다.
해결책:
include/userlogin.class.php를 찾으세요. 거기에는 session_register를 사용합니다. 그러나 이 함수는 php5.4에서 제거되었습니다:

이 PHP 버전을 사용하면 분명히 오류가 발생하지만 코드를 수정할 수 있습니다.
@session_register($this->keepUserIDTag)를 주석 처리하고
로 변경합니다. if (!isset($_SESSION[$this->keepUserIDTag]))
총 6개가 있는데 모두 다음과 같이 변경되었습니다.

if (!isset($_SESSION[$this->keepUserIDTag])) 
//@session_register($this->keepUserIDTag); 
 
$_SESSION[$this->keepUserIDTag] = $this->userID; 
 
if (!isset($_SESSION[$this->keepUserTypeTag])) 
//@session_register($this->keepUserTypeTag); 
 
$_SESSION[$this->keepUserTypeTag] = $this->userType; 
 
if (!isset($_SESSION[$this->keepUserChannelTag])) 
//@session_register($this->keepUserChannelTag); 
 
$_SESSION[$this->keepUserChannelTag] = $this->userChannel; 
 
if (!isset($_SESSION[$this->keepUserNameTag])) 
//@session_register($this->keepUserNameTag); 
 
$_SESSION[$this->keepUserNameTag] = $this->userName; 
 
if (!isset($_SESSION[$this->keepUserPurviewTag])) 
//@session_register($this->keepUserPurviewTag); 
 
$_SESSION[$this->keepUserPurviewTag] = $this->userPurview; 
 
if (!isset($_SESSION[$this->keepAdminStyleTag])) 
//@session_register($this->keepAdminStyleTag); 
 
$_SESSION[$this->keepAdminStyleTag] = $adminstyle; 

백그라운드로 다시 진입하여 로그인하시면 정상적으로 관리페이지로 이동하실 수 있습니다.
PHP에 익숙하지 않기 때문에 인터넷에서는 일반적으로 data/common.inc.php 파일의 인코딩에 문제가 있다고 하는데 BOM-free 형식으로 저장하려면 인코딩을 변경해야 합니다. php5.4 버전의 문제라고는 말하지 않았습니다
또 다른 방법:
include/helpers/util.helper.php 끝에 다음 코드를 추가하세요

function fix_session_register(){  
  function session_register(){  
    $args = func_get_args();  
    foreach ($args as $key){  
      $_SESSION[$key]=$GLOBALS[$key];  
    }  
  }  
  function session_is_registered($key){  
    return isset($_SESSION[$key]);  
  }  
  function session_unregister($key){  
    unset($_SESSION[$key]);  
  }  
}  
if (!function_exists('session_register')) fix_session_register(); 

이렇게 하면 php5.4에서 dedecms를 정상적으로 사용할 수 있습니다. 이 글에서 공유한 두 가지 방법이 모두가 문제를 원활하게 해결하는 데 도움이 되기를 바랍니다.

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